Partager via


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 :

  • Traitement des contraintes

  • Actions référentielles déclaratives

  • Création de tables inserted et deleted

  • L'action de déclenchement

Avant :

  • Traitement des contraintes

Au lieu de :

  • L'action de déclenchement

Après :

  • Création de tables inserted et deleted

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