DML 트리거 이해

Microsoft SQL Server 2005에서는 비즈니스 규칙과 데이터 무결성 적용을 위한 두 가지 주요 메커니즘인 제약 조건과 트리거를 제공합니다. 트리거는 언어 이벤트가 실행될 때 자동으로 적용되는 특별한 유형의 저장 프로시저입니다. SQL Server에는 두 가지 일반 유형의 트리거인 DML 트리거와 DDL 트리거가 있습니다.

DDL 트리거는 SQL Server 2005에 새로 도입되었습니다. 서버나 데이터베이스에서 DDL(데이터 정의 언어) 이벤트가 발생하면 DDL 트리거가 호출됩니다. 자세한 내용은 DDL 트리거에서 설명합니다.

DML 트리거는 데이터베이스에서 DML(데이터 조작 언어) 이벤트가 발생할 때 호출됩니다. DML 이벤트에는 지정한 테이블이나 뷰의 데이터를 수정하는 INSERT, UPDATE 또는 DELETE 문이 포함됩니다. DML 트리거는 다른 테이블을 쿼리할 수 있고 복잡한 Transact-SQL 문을 포함할 수 있습니다. 트리거 및 트리거를 시작하는 문은 트리거 내에서 롤백할 수 있는 단일 트랜잭션으로 처리됩니다. 디스크 공간 부족 등의 심각한 오류가 발견되면 전체 트랜잭션이 자동으로 롤백됩니다.

다음과 같은 방법으로 DML 트리거를 사용할 수 있습니다.

  • DML 트리거는 데이터베이스의 관련 테이블을 통해 변경 내용을 연계할 수 있습니다. 그러나 연계 참조 무결성 제약 조건을 사용하면 보다 효율적으로 변경 작업을 실행할 수 있습니다.
  • DML 트리거는 악의적이거나 잘못된 INSERT, UPDATE 및 DELETE 작업으로부터 보호하며 CHECK 제약 조건으로 정의하는 것보다 복잡한 다른 제약 조건을 적용합니다.
    CHECK 제약 조건과 달리 DML 트리거는 다른 테이블의 열을 참조할 수 있습니다. 예를 들어 트리거는 다른 테이블에서 SELECT 문을 사용하여 삽입되거나 업데이트된 데이터와 비교하고 데이터 수정 또는 사용자 정의 오류 메시지 표시 등의 추가 작업을 수행할 수 있습니다.
  • 데이터 수정 전후의 테이블 상태를 평가하고 이 차이점에 따라 작업을 수행할 수도 있습니다.
  • 테이블에 같은 유형(INSERT, UPDATE 또는 DELETE)의 DML 트리거를 여러 개 만들면 같은 수정 문이 실행될 때 여러 다른 작업을 실행할 수 있습니다.

참고 항목

개념

DML 트리거 유형
트리거와 제약 조건 비교
AdventureWorks 예제 데이터베이스의 DML 트리거

도움말 및 정보

SQL Server 2005 지원 받기