AdventureWorks サンプル データベースの DML トリガ
更新 : 2006 年 4 月 14 日
このトピックでは、AdventureWorks サンプル データベースに付属している DML トリガの例の一部について説明します。付属の DML トリガは、Adventure Works Cycles のビジネス ルールを実施し、データの整合性を保護するためにデザインされています。
SQL Server Management Studio で各トリガのテキストを表示するには
- オブジェクト エクスプローラでトリガが定義されているテーブルに移動し、[トリガ] フォルダを展開します。
- 任意のトリガを右クリックし、[名前を付けてトリガをスクリプト化] をクリックします。
更新後のフィールドの設定
uSalesOrderHeader DML トリガ
テーブル Sales.SalesOrderHeader
には、Status
フィールドを除く特定の行の更新回数を反映する RevisionNumber
列があります。更新が行われると、DML トリガ uSalesOrderHeader
によって RevisionNumber
フィールドが 1 つずつ加算されるか、NULL の場合は 1 に設定されます。
uPurchaseOrderHeader DML トリガはテーブル Purchasing.PurchaseOrderHeader に対し、uSalesOrderHeader DML トリガがテーブル Sales.SalesOrderHeader に対して実行するのと同じアクションを実行します。
挿入後のテーブルへのデータ格納、および別テーブルのフィールド設定
iPurchaseOrderDetail DML トリガおよび uPurchaseOrderHeader DML トリガ
PurchaseOrderDetail
テーブルにデータが挿入されると、挿入されたデータの一部が Production.TransactionHistory
テーブルにも DML トリガ iPurchaseOrderDetail
によって挿入されます。PurchaseOrderHeader
テーブルの 1 つの発注は PurchaseOrderDetail
の複数の品目で構成されているので、PurchaseOrderDetail
で挿入を行った場合は PurchaseOrderHeader
の Subtotal
フィールドを更新する必要があります。iPurchaseOrderDetail
トリガは、特定の受注について PurchaseOrderDetail
の LineTotal
フィールドを集計し、その集計結果を PurchaseOrderHeader
の Subtotal
フィールドに設定します。
DML トリガによって Purchasing.PurchaseOrderHeader
が更新されると、Purchasing.PurchaseOrderHeader
テーブルにある uPurchaseOrderHeader
更新トリガが起動します。他のトリガを起動させるトリガの詳細については、「入れ子になったトリガの使用」を参照してください。
iPurchaseOrderDetail により TransactionHistory テーブルおよび PurchaseOrderHeader テーブルに対して行われるアクションと同じアクションが、DML トリガ uPurchaseOrderDetail によって、挿入を受け取ったときではなく PurchaseOrderDetail テーブルが更新されたときに行われます。
テーブル Production.WorkOrder の DML トリガ iWorkOrder および uWorkOrder によってデータが挿入されるのは TransactionHistory テーブルのみです。
参照
概念
ヘルプおよび情報
変更履歴
リリース | 履歴 |
---|---|
2006 年 4 月 14 日 |
|