共用方式為


AdventureWorks 範例資料庫中的 DML 觸發程序

更新: 2006 年 4 月 14 日

本主題說明 AdventureWorks 範例資料庫所包含的數個 DML 觸發程序範例。這些 DML 觸發程序是設計來強制套用 Adventure Works Cycles 的商務規則,並協助保護其資料的完整性。

若要檢視 SQL Server Management Studio 中每一個觸發程序的文字

  1. 在 [物件總管] 中,尋找定義觸發程序的資料表,然後展開 [觸發程序] 資料夾。
  2. 以滑鼠右鍵按一下您要的觸發程序,再按一下 [編寫觸發程序的指令碼為]

設定更新後的欄位

uSalesOrderHeader DML 觸發程序

資料表 Sales.SalesOrderHeader 包含 RevisionNumber 資料行,以反映特定資料列的更新次數 (不包括 Status 欄位)。更新後,DML 觸發程序 uSalesOrderHeader 會將 RevisionNumber 欄位加 1,如果它是 Null 則將它設為 1。

uPurchaseOrderHeader DML 觸發程序對資料表 Purchasing.PurchaseOrderHeader 執行的動作,與 uSalesOrderHeader DML 觸發程序對資料表 Sales.SalesOrderHeader 所執行的動作相同。

發生插入後填入資料表,然後設定另一個資料表中的欄位

iPurchaseOrderDetail 及 uPurchaseOrderHeader DML 觸發程序

當資料插入 PurchaseOrderDetail 資料表時,DML 觸發程序 iPurchaseOrderDetail 也會將所插入資料的一部份,插入 Production.TransactionHistory 資料表。因為 PurchaseOrderDetail 中的多個明細行項目構成 PurchaseOrderHeader 資料表中的一張採購單,所以在 PurchaseOrderDetail 中發生插入時,必須更新 PurchaseOrderHeader 中的 Subtotal 欄位。iPurchaseOrderDetail 觸發程序會針對特定的銷售訂單,彙總 PurchaseOrderDetailLineTotal 欄位,並利用該彙總值設定 PurchaseOrderHeaderSubtotal 欄位。

請注意,當 DML 觸發程序對 Purchasing.PurchaseOrderHeader 執行更新時,此動作會引發 Purchasing.PurchaseOrderHeader 資料表上的 uPurchaseOrderHeader 更新觸發程序。如需會引發其他觸發程序之觸發程序的詳細資訊,請參閱<使用巢狀觸發程序>。

DML 觸發程序 uPurchaseOrderDetailTransactionHistoryPurchaseOrderHeader 資料表執行的動作,與 iPurchaseOrderDetail 執行的動作相同,只不過是在更新 PurchaseOrderDetail 資料表時執行,而不是在它接收插入時執行。

資料表 Production.WorkOrder 上的 DML 觸發程序 iWorkOrderuWorkOrder,只會將資料插入 TransactionHistory 資料表。

請參閱

概念

瞭解 DML 觸發程序

說明及資訊

取得 SQL Server 2005 協助

變更歷程記錄

版本 歷程記錄

2006 年 4 月 14 日

變更的內容:
  • 移除不存在於 SQL Server 2005 Service Pack 1 版本的 AdventureWorks 範例資料庫中之觸發程序的參考。