Partager via


Déclencheurs DML dans l'exemple de base de données AdventureWorks

Mis à jour : 14 avril 2006

Cette rubrique décrit plusieurs exemples de déclencheurs DML qui sont compris dans l'exemple de base de données AdventureWorks. Ces déclencheurs DML ont été conçus pour appliquer la logique d'entreprise de Adventure Works Cycles et pour permettre la protection de l'intégrité de ses données.

Pour afficher le texte de chaque déclencheur dans SQL Server Management Studio

  1. Dans l'Explorateur d'objets, recherchez la table sur laquelle le déclencheur est défini, puis développez le dossier Déclencheurs.
  2. Cliquez avec le bouton droit sur le déclencheur de votre choix, puis cliquez sur Générer un script du déclencheur en tant que.

Définition d'un champ après une mise à jour

déclencheur DML uSalesOrderHeader

La table Sales.SalesOrderHeader contient la colonne RevisionNumber qui indique le nombre de mises à jour d'une ligne spécifique, à l'exclusion du champ Status. Après une mise à jour, le déclencheur DML uSalesOrderHeader incrémente le champ RevisionNumber d'une unité ou lui attribue la valeur 1 s'il a pour valeur NULL.

Le déclencheur DML uPurchaseOrderHeader exécute sur la table Purchasing.PurchaseOrderHeader la même action que le déclencheur DML uSalesOrderHeader sur la table Sales.SalesOrderHeader.

Remplissage d'une table après une insertion, puis définition d'un champ dans une autre table

Déclencheurs DML iPurchaseOrderDetail et uPurchaseOrderHeader

Lorsque des données sont insérées dans la table PurchaseOrderDetail, le déclencheur DML iPurchaseOrderDetail insère une partie d'entre elles dans la table Production.TransactionHistory. Étant donné que plusieurs articles dans PurchaseOrderDetail composent un bon de commande dans la table PurchaseOrderHeader, le champ Subtotal de PurchaseOrderHeader doit être mis à jour lorsqu'une insertion se produit dans PurchaseOrderDetail. Le déclencheur iPurchaseOrderDetail agrège le champ LineTotal de PurchaseOrderDetail pour une commande spécifique, puis définit le champ Subtotal de PurchaseOrderHeader avec cette agrégation.

Lorsque le déclencheur DML effectue une mise à jour sur Purchasing.PurchaseOrderHeader, cette action déclenche le déclencheur de mise à jour uPurchaseOrderHeader qui existe sur la table Purchasing.PurchaseOrderHeader. Pour plus d'informations sur les déclencheurs qui déclenchent d'autres déclencheurs, consultez Déclencheurs imbriqués.

Le déclencheur DML uPurchaseOrderDetail exécute sur les tables TransactionHistory et PurchaseOrderHeader les mêmes actions que iPurchaseOrderDetail mais il les effectue lorsque la table PurchaseOrderDetail est mise à jour, pas lorsqu'elle reçoit une insertion.

Les déclencheurs DML iWorkOrder et uWorkOrder de la table Production.WorkOrder insèrent des données uniquement dans la table TransactionHistory.

Voir aussi

Concepts

Présentation des déclencheurs DML

Aide et Informations

Assistance sur SQL Server 2005

Historique des modifications

Version Historique

14 avril 2006

Contenu modifié :
  • Suppression des références aux déclencheurs qui n'existent pas dans la version SQL Server 2005 Service Pack 1 de l'exemple de base de données AdventureWorks.