DML 트리거 시작 시기 지정

다음 두 옵션 중 하나를 지정하여 DML 트리거 시작 시기를 조정할 수 있습니다.

  • AFTER 트리거는 트리거 작업(INSERT, UPDATE 또는 DELETE), INSTEAD OF 트리거 및 제약 조건이 처리된 후에 시작됩니다. AFTER 또는 FOR 키워드를 지정하여 AFTER 트리거를 요청할 수 있습니다. FOR 키워드는 AFTER 키워드와 같은 효과가 있기 때문에 FOR 키워드를 사용하는 DML 트리거도 AFTER 트리거로 분류됩니다.
  • INSTEAD OF 트리거는 제약 조건이 처리되기 전에 트리거 작업 대신 시작됩니다. 테이블에 AFTER 트리거가 있으면 제약 조건 처리 후 시작됩니다. 제약 조건을 위반하면 INSTEAD OF 트리거 작업이 롤백되고 AFTER 트리거가 실행되지 않습니다.

각 테이블이나 뷰는 각 트리거 작업(UPDATE, DELETE 및 INSERT)에 대해 하나의 INSTEAD OF 트리거를 가질 수 있습니다. 테이블은 각 트리거 작업에 대해 여러 개의 AFTER 트리거를 가질 수 있습니다.

1. INSTEAD OF 트리거를 사용하여 표준 트리거 작업 대체

CREATE TRIGGER TableAInsertTrig ON TableA
INSTEAD OF INSERT
AS ...

2. AFTER 트리거를 사용하여 표준 트리거 작업 보강

CREATE TRIGGER TableBDeleteTrig ON TableB
AFTER DELETE
AS ...

3. FOR 트리거를 사용하여 표준 트리거 작업 보강

-- This statement uses the FOR keyword to generate an AFTER trigger.
CREATE TRIGGER TableCUpdateTrig ON TableC
FOR UPDATE
AS ...

참고 항목

개념

DML 트리거 디자인

도움말 및 정보

SQL Server 2005 지원 받기