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 트리거는 uSalesOrderHeader DML 트리거가 Sales.SalesOrderHeader 테이블에서 수행하는 것과 같은 작업을 Purchasing.PurchaseOrderHeader 테이블에 대해 수행합니다.
삽입 후 테이블을 채운 다음 다른 테이블에서 필드 설정
iPurchaseOrderDetail 및 uPurchaseOrderHeader DML 트리거
PurchaseOrderDetail
테이블에 데이터가 삽입되면 DML 트리거 iPurchaseOrderDetail
은 삽입된 데이터의 일부를 Production.TransactionHistory
테이블에도 삽입합니다. PurchaseOrderDetail
에서 여러 줄로 이루어진 항목이 PurchaseOrderHeader
테이블에서 하나의 구매 주문을 구성하므로 PurchaseOrderDetail
에 삽입이 이루어질 때 PurchaseOrderHeader
의 Subtotal
필드가 업데이트되어야 합니다. iPurchaseOrderDetail
트리거는 특정 판매 주문에 대해 PurchaseOrderDetail
의 LineTotal
필드를 집계하고 해당 집계를 사용하여 PurchaseOrderHeader
의 Subtotal
필드를 설정합니다.
DML 트리거가 Purchasing.PurchaseOrderHeader
에서 업데이트를 수행하면 이 작업으로 인해 Purchasing.PurchaseOrderHeader
테이블에 있는 uPurchaseOrderHeader
업데이트 트리거가 시작됩니다. 다른 트리거가 시작되도록 하는 트리거에 대한 자세한 내용은 중첩 트리거 사용을 참조하십시오.
DML 트리거 uPurchaseOrderDetail은 iPurchaseOrderDetail이 수행하는 것과 같은 작업을 TransactionHistory 및 PurchaseOrderHeader 테이블에 대해 수행하지만 삽입을 받을 때 대신 PurchaseOrderDetail 테이블이 업데이트될 때 해당 작업을 수행합니다.
Production.WorkOrder 테이블의 DML 트리거 iWorkOrder 및 uWorkOrder는 TransactionHistory 테이블에 대해서만 데이터를 삽입합니다.
참고 항목
개념
도움말 및 정보
변경 내역
릴리스 | 내역 |
---|---|
2006년 4월 14일 |
|