Eu finalmente encontrei algo na documentação do Access .
A cláusula CONSTRAINT para definir as restrições de FOREIGN KEY aceita a seguinte sintaxe:
CONSTRAINT FOREIGN KEY (ref1[, ref2[, ...]]) REFERENCES table
ON UPDATE [CASCADE | SET NULL]
ON DELETE [CASCADE | SET NULL]
Suponho que, para especificar se NULL é permitido ou não para essa FOREIGN KEY, uma restrição diferente deve ser adicionada com
CONSTRAINT NOT NULL (ref)
ou diretamente especificando NOT NULL ao definir esse campo na cláusula CREATE TABLE.
No entanto, recebo um erro de sintaxe quando eu digito "ON UPDATE" e "ON DELETE" dizendo que não são aceitos, e esse erro não aparece quando eu removo essas regras.
Editado em 06-06-2010:
Esta sintaxe está correta e funciona corretamente, mas para que o Access a aceite, os seguintes requisitos devem ser atendidos:
- Você deve estar usando o Access 2003 e posterior.
- No menu "Ferramentas > Opções", na guia "Tabelas ou consultas", você deve especificar que deseja "Sintaxe compatível com o SQL Server (ANSI 92)" pelo menos para o banco de dados atual.
Depois dessa pequena configuração no meu Access 2003, agora funciona! O Access não mostra mais essa mensagem de erro, e agora permite essa sintaxe para especificar as regras de exclusão e atualização para chaves estrangeiras!
Quando uma dessas regras não é especificada, o Access supõe que seja restrito. Em outras palavras, se a regra de exclusão ou a regra de atualização não for especificada, o Access restringirá a exclusão ou a atualização, respectivamente.