DML-Trigger in der AdventureWorks-Beispieldatenbank
Aktualisiert: 14. April 2006
In diesem Thema werden verschiedene Beispiele für DML-Trigger beschrieben, die in der AdventureWorks-Beispieldatenbank enthalten sind. Diese DML-Trigger sind auf die Durchsetzung der Geschäftsregeln von Adventure Works Cycles und den Schutz der Datenintegrität ausgerichtet.
So zeigen Sie den Text der einzelnen Trigger in SQL Server Management Studio an
- Suchen Sie im Objekt-Explorer die Tabelle, für die der Trigger definiert wurde, und erweitern Sie den Ordner Trigger.
- Klicken Sie mit der rechten Maustaste auf den gewünschten Trigger, und klicken Sie anschließend auf Skript für Trigger als.
Festlegen eines Feldes nach einer Aktualisierung
uSalesOrderHeader-DML-Trigger
Die Sales.SalesOrderHeader
-Tabelle enthält die RevisionNumber
-Spalte, in der widergespiegelt wird, wie oft eine bestimmte Zeile (mit Ausnahme des Feldes Status
) aktualisiert wurde. Der uSalesOrderHeader
-DML-Trigger erhöht das Feld RevisionNumber
um eins oder legt es auf eins fest, falls es nach einer Aktualisierung den Wert Null enthält.
Der uPurchaseOrderHeader-DML-Trigger führt für die Purchasing.PurchaseOrderHeader-Tabelle dieselbe Aktion aus wie der uSalesOrderHeader-DML-Trigger für die Sales.SalesOrderHeader-Tabelle.
Auffüllen einer Tabelle nach einer Einfügung und anschließendes Festlegen eines Feldes in einer anderen Tabelle
DML-Trigger iPurchaseOrderDetail und uPurchaseOrderHeader
Wenn Daten in die PurchaseOrderDetail
-Tabelle eingefügt werden, fügt der iPurchaseOrderDetail
-DML-Trigger einen Teil der eingefügten Daten auch in die Production.TransactionHistory
-Tabelle ein. Da mehrere Zeilen in PurchaseOrderDetail
eine Bestellung in der PurchaseOrderHeader
-Tabelle bilden, muss das Subtotal
-Feld in PurchaseOrderHeader
aktualisiert werden, wenn eine Einfügung in PurchaseOrderDetail
stattfindet. Der iPurchaseOrderDetail
-Trigger aggregiert das LineTotal
-Feld von PurchaseOrderDetail
für einen bestimmten Kaufauftrag und legt diese Aggregation für das Subtotal
-Feld von PurchaseOrderHeader
fest.
Beachten Sie, dass, sofern der DML-Trigger eine Aktualisierung von Purchasing.PurchaseOrderHeader
ausführt, durch die genannte Aktion der uPurchaseOrderHeader
-Aktualisierungstrigger ausgelöst wird, der für die Purchasing.PurchaseOrderHeader
-Tabelle vorhanden ist. Weitere Informationen zu Triggern, durch die andere Trigger ausgelöst werden, finden Sie unter Verwenden von geschachtelten Triggern.
Der uPurchaseOrderDetail-DML-Trigger führt dieselben Aktionen für die Tabellen TransactionHistory und PurchaseOrderHeader aus wie der iPurchaseOrderDetail-Trigger. Er führt diese Aktionen jedoch auch aus, wenn die PurchaseOrderDetail-Tabelle aktualisiert wird und nicht, wenn eine Einfügung in ihr vorgenommen wird.
Die DML-Trigger iWorkOrder und uWorkOrder für die Production.WorkOrder-Tabelle fügen nur Daten in die TransactionHistory-Tabelle ein.
Siehe auch
Konzepte
Hilfe und Informationen
Informationsquellen für SQL Server 2005
Änderungsverlauf
Version | Verlauf |
---|---|
14. April 2006 |
|