Partilhar via


Especificando quando um gatilho DML é acionado

Você pode especificar uma de duas opções para controlar quando um gatilho DML é acionado:

  • Os gatilhos AFTER são acionados depois de a ação de gatilho (INSERT, UPDATE ou DELETE), de os gatilhos INSTEAD OF e de as restrições serem processados. Você pode solicitar gatilhos AFTER especificando as palavras-chave AFTER ou FOR. Como a palavra-chave FOR tem o mesmo efeito que AFTER, os gatilhos DML com a palavra-chave FOR também são classificados como gatilhos AFTER.

  • Os gatilhos INSTEAD OF são acionados em lugar da ação de gatilho e antes de as restrições serem processadas. Se houver gatilhos AFTER na tabela, eles serão acionados depois do processamento da restrição. Se as restrições forem violadas, as ações de gatilho INSTEAD OF serão revertidas e o gatilho AFTER não será executado.

Cada tabela ou exibição pode ter um gatilho INSTEAD OF para cada ação de gatilho (UPDATE, DELETE e INSERT). Uma tabela pode ter vários gatilhos AFTER para cada ação de gatilho.

Exemplos

A. Usando o gatilho INSTEAD OF para substituir a ação de gatilho padrão

CREATE TRIGGER TableAInsertTrig ON TableA
INSTEAD OF INSERT
AS ...

B. Usando o gatilho AFTER para aumentar a ação de gatilho padrão

CREATE TRIGGER TableBDeleteTrig ON TableB
AFTER DELETE
AS ...

C. Usando o gatilho FOR para aumentar a ação de gatilho padrão

-- This statement uses the FOR keyword to generate an AFTER trigger.
CREATE TRIGGER TableCUpdateTrig ON TableC
FOR UPDATE
AS ...

Consulte também

Conceitos