DML 트리거 계획 지침
DML 트리거를 디자인할 때 다음과 같은 두 가지 옵션을 사용할 수 있습니다.
일반 트리거 동작 대신 INSTEAD OF 트리거를 실행합니다. 뷰에서 지원하는 업데이트 유형을 확장할 수 있는 기본 테이블이 하나 이상 있는 뷰에 INSTEAD OF 트리거를 정의할 수도 있습니다.
INSERT, UPDATE 또는 DELETE 문의 동작을 수행한 후에 AFTER 트리거를 실행합니다. AFTER 지정은 FOR 지정과 같습니다. AFTER 트리거는 테이블에만 지정할 수 있습니다.
이 표에서는 AFTER 트리거와 INSTEAD OF 트리거의 기능을 비교합니다.
함수 |
AFTER 트리거 |
INSTEAD OF 트리거 |
---|---|---|
적용 대상 |
테이블 |
테이블 및 뷰 |
각 테이블이나 뷰에서 가능한 트리거 수 |
각 트리거 동작(UPDATE, DELETE 및 INSERT)에 대해 여러 개 사용 가능 |
각 트리거 동작(UPDATE, DELETE 및 INSERT)에 대해 한 개만 사용 가능 |
연계 참조 |
적용되는 제한 없음 |
연계 참조 무결성 제약 조건이 적용되는 테이블에는 INSTEAD OF UPDATE 트리거와 DELETE 트리거가 허용되지 않습니다. |
실행 |
다음 이후
|
다음 이전
다음 대신
다음 이후
|
실행 순서 |
첫 실행과 마지막 실행을 지정할 수 있음 |
해당 사항 없음 |
inserted 및 deleted 테이블의 varchar(max), nvarchar(max) 및 varbinary(max) 열 참조 |
허용됨 |
허용됨 |
inserted 및 deleted 테이블의 text, ntext 및 image 열 참조 |
허용 안 됨 |
허용됨 |