DMLWyzwalacze w bazie danych AdventureWorks2008R2
W tym temacie opisano kilka przykładów DML wyzwalaczy, które są uwzględnione w AdventureWorks2008R2 przykładowej bazy danych.Te DML wyzwalacze są przystosowane do wymuszania reguły biznesowe z Adventure Works Cycles i ochronie integralność danych.
Aby wyświetlić tekst każdego wyzwalacza w programie SQL Server Management Studio
W Eksploratorze obiektów zlokalizować tabela, na którym wyzwalacz jest zdefiniowana i rozwiń wyzwalaczy folder.
Kliknij prawym przyciskiem myszy wyzwalacza, a następnie kliknij Skrypt wyzwalacza jako.
Ustawienie pola po aktualizacji
uSalesOrderHeader DML wyzwalacza
Tabela Sales.SalesOrderHeader zawiera RevisionNumber kolumna, aby odzwierciedlać liczbę razy określonego wiersza, z wyłączeniem Status pole, został zaktualizowany.wyzwalacz DML uSalesOrderHeader przyrostach RevisionNumber pole za pomocą jednego, lub zestawy go, jeśli jeden jest null, po aktualizacji.
UPurchaseOrderHeader wyzwalacz DML wykonuje tę samą akcja do tabela Purchasing.PurchaseOrderHeader jako uSalesOrderHeader wyzwalacz DML wykonuje się w tabela Sales.SalesOrderHeader.
Wypełnianie po wstawieniu tabeli, a następnie ustawienie pola z innej tabeli
iPurchaseOrderDetail i uPurchaseOrderHeader DML wyzwalaczy
Kiedy danych jest wstawiany do PurchaseOrderDetail tabela, wyzwalacz DML iPurchaseOrderDetail wstawia część danych wstawianych do Production.TransactionHistory tabela również.Ponieważ wiele linii w elementach PurchaseOrderDetail tworzą jedno zamówienie zakupu w PurchaseOrderHeader tabela, Subtotal pole w PurchaseOrderHeader musi zostać zaktualizowana podczas wstawiania występuje w PurchaseOrderDetail.iPurchaseOrderDetail Wyzwolić agregatów LineTotal pole PurchaseOrderDetail dla określonego zamówienia sprzedaży i zestawów Subtotal pole PurchaseOrderHeader z tym agregacja.
Uwaga Kiedy wyzwalacz DML wykonuje aktualizację Purchasing.PurchaseOrderHeader, ta akcja powoduje uPurchaseOrderHeader Aktualizacja wyzwalacz, który istnieje w Purchasing.PurchaseOrderHeader tabela pożaru.Aby uzyskać więcej informacji dotyczących wyzwalaczy, powodujących innych wyzwalaczy na ogień, zobacz Przy użyciu wyzwalaczy zagnieżdżonych.
wyzwalacz DML uPurchaseOrderDetail wykonuje te same czynności TransactionHistory i PurchaseOrderHeader tabel jako iPurchaseOrderDetail, ale wykonuje je po PurchaseOrderDetail tabela jest aktualizowana, zamiast kiedy odbiera insert.
DMLWyzwalacze iWorkOrder i uWorkOrder w tabela Production.WorkOrder wstawienie danych do TransactionHistory tylko tabela.