Share via


Présentation des déclencheurs DML

Microsoft SQL Server 2005 offre deux mécanismes principaux pour assurer l'application des règles métier et l'intégrité des données : les contraintes et les déclencheurs. Un déclencheur est un type spécial de procédure stockée qui est automatiquement invoqué lorsqu'un événement de langage s'exécute. SQL Server intègre deux types généraux de déclencheurs : les déclencheurs DML et les déclencheurs DDL.

Les déclencheurs DDL sont une nouveauté de SQL Server 2005. Ces déclencheurs sont appelés lorsqu'un événement de langage de définition de données (DDL, ou Data Definition Language) se produit dans le serveur ou la base de données. Ceux-ci sont décrits plus en détail dans la rubrique Déclencheurs DDL.

Les déclencheurs DML sont appelés lorsqu'un événement de langage de manipulation de données (DML, ou Data Manipulation Language) se produit dans la base de données. Les événements DML incluent des instructions INSERT, UPDATE ou DELETE qui permettent la modification de données dans une table ou une vue spécifiée. Un déclencheur DML peut interroger d'autres tables et peut inclure des instructions Transact-SQL complexes. Le déclencheur et l'instruction qui le déclenche, sont traités comme une unique transaction qui peut être annulée (par une opération de restauration) à partir du déclencheur. Si une erreur grave est détectée (par exemple un espace disque insuffisant), toute la transaction est automatiquement annulée.

Les déclencheurs DML sont utiles dans les cas suivants :

  • Ils peuvent effectuer des modifications en cascade dans des tables associées de la base de données, mais ces modifications peuvent être exécutées plus efficacement par le biais de contraintes d'intégrité référentielle en cascade.
  • Ils peuvent empêcher les opérations INSERT, UPDATE et DELETE incorrectes et assurer l'application d'autres restrictions plus complexes que celles définies à l'aide de contraintes CHECK.
    Contrairement aux contraintes CHECK, les déclencheurs DML peuvent faire référence à des colonnes d'autres tables. Par exemple, un déclencheur peut utiliser une instruction SELECT à partir d'une autre table afin de comparer avec les données insérées ou mises à jour et d'effectuer des actions supplémentaires, comme modifier les données ou afficher un message d'erreur défini par l'utilisateur.
  • Ils peuvent déterminer l'état d'une table avant et après une modification de données, et entreprendre des actions en fonction de cette différence d'état.
  • Plusieurs déclencheurs DML du même type (INSERT, UPDATE ou DELETE) sur une table permettent que plusieurs actions différentes soient réalisées en réponse à la même instruction de modification.

Voir aussi

Concepts

Types de déclencheurs DML
Comparaison des déclencheurs et des contraintes
Déclencheurs DML dans l'exemple de base de données AdventureWorks

Aide et Informations

Assistance sur SQL Server 2005