Instructions pour la planification des déclencheurs DML
Il existe deux options pour créer des déclencheurs DML :
Les déclencheurs INSTEAD OF sont exécutés à la place de l'action de déclenchement habituelle. Ils peuvent également être définis sur une vue avec une ou plusieurs tables de base, afin d'étendre les types de mises à jour pouvant être prises en charge par la vue.
Les déclencheurs AFTER sont exécutés après l'action associée à une instruction INSERT, UPDATE ou DELETE. Spécifier AFTER revient à spécifier FOR. Les déclencheurs AFTER peuvent être spécifiés uniquement sur des tables.
Le tableau suivant compare les fonctionnalités des déclencheurs AFTER et INSTEAD OF.
Fonction |
Déclencheur AFTER |
Déclencheur INSTEAD OF |
---|---|---|
Applicabilité |
Tables |
Tables et vues |
Quantité par table ou vue |
Plusieurs par action de déclenchement (UPDATE, DELETE et INSERT) |
Un par action de déclenchement (UPDATE, DELETE et INSERT) |
Références en cascade |
Aucune restriction |
Les déclencheurs INSTEAD OF UPDATE et DELETE ne sont pas autorisés sur des tables qui sont des cibles de contraintes d'intégrité référentielle en cascade. |
Exécution |
Après :
|
Avant :
Au lieu de :
Après :
|
Ordre d'exécution |
La première et la dernière exécution peuvent être spécifiées |
Non applicable |
Références de colonnes varchar(max), nvarchar(max) et varbinary(max) dans des tables inserted et deleted |
Autorisées |
Autorisées |
Références de colonnes text, ntext et image dans des tables inserted et deleted |
Non autorisées |
Autorisées |