Définition des circonstances d'activation d'un déclencheur DML
Vous avez le choix entre deux options pour définir le moment auquel un déclencheur DML est activé :
Les déclencheurs AFTER sont activés après l'action de déclenchement (INSERT, UPDATE ou DELETE) et après que les déclencheurs INSTEAD OF et les contraintes soient traités. Vous pouvez définir des déclencheurs AFTER à l'aide du mot clé AFTER ou FOR. Étant donné que le mot clé FOR produit le même effet que le mot clé AFTER, les déclencheurs DML définis à l'aide du mot clé FOR sont également considérés comme des déclencheurs AFTER.
Les déclencheurs INSTEAD OF sont activés à la place de l'action de déclenchement et avant le traitement des contraintes. Si des déclencheurs AFTER sont définis sur une table, ils s'activent après le traitement des contraintes. Si les contraintes sont violées, les actions du déclencheur INSTEAD OF sont annulées et le déclencheur AFTER n'est pas exécuté.
Chaque table ou vue peut disposer d'un seul déclencheur INSTEAD OF par action de déclenchement (UPDATE, DELETE et INSERT). Une table peut en revanche détenir plusieurs déclencheurs AFTER par action de déclenchement.
Exemples
A. Utilisation du déclencheur INSTEAD OF pour remplacer l'action de déclenchement standard
CREATE TRIGGER TableAInsertTrig ON TableA
INSTEAD OF INSERT
AS ...
B. Utilisation du déclencheur AFTER pour augmenter l'action de déclenchement standard
CREATE TRIGGER TableBDeleteTrig ON TableB
AFTER DELETE
AS ...
C. Utilisation du déclencheur FOR pour augmenter l'action de déclenchement standard
-- This statement uses the FOR keyword to generate an AFTER trigger.
CREATE TRIGGER TableCUpdateTrig ON TableC
FOR UPDATE
AS ...