Diretrizes de planejamento do gatilho DML
Há duas opções ao projetar gatilhos DML:
Os gatilhos INSTEAD OF são executados no lugar da ação de gatilho usual. Os gatilhos INSTEAD OF também podem ser definidos em exibições com uma ou mais tabelas, em que possam estender os tipos de atualizações que uma exibição pode suportar.
Os gatilhos AFTER são executados depois que ação das instruções INSERT, UPDATE ou DELETE for executada. Os gatilhos AFTER são especificados da mesma forma que os gatilhos FOR. Os gatilhos AFTER podem ser especificados somente em tabelas.
Esta tabela compara a funcionalidade dos gatilhos AFTER e INSTEAD OF.
Função |
Gatilho AFTER |
Gatilho INSTEAD OF |
---|---|---|
Aplicabilidade |
Tabelas |
Tabelas e exibições |
Quantidade por tabela ou exibição |
Múltiplas ações por ação de gatilho (UPDATE, DELETE e INSERT) |
Uma ação por ação de gatilho (UPDATE, DELETE e INSERT) |
Referências em cascata |
Nenhuma restrição se aplica |
Os gatilhos INSTEAD OF UPDATE e DELETE não são permitidos em tabelas que são destinos de restrições de integridade referencial em cascata. |
Execução |
Após:
|
Antes:
Em lugar de:
Após:
|
Ordem de execução |
A primeira e a última execução podem ser especificadas |
Não aplicável |
As referências de coluna varchar(max), nvarchar(max) e varbinary(max) em tabelas inseridas e excluídas |
Permitido |
Permitido |
Referências de coluna text, ntext e image em tabelas inseridas e excluídas |
Não permitido |
Permitido |