트리거 작업
업데이트: 2007년 11월
트리거는 지정된 테이블의 데이터에 대하여 여러 가지 데이터 수정 작업(UPDATE, INSERT, DELETE 등)을 하는 경우에 실행되는 특별한 종류의 저장 프로시저입니다. INSTEAD OF 트리거라고 알려진 특별 트리거는 뷰의 원본 기본 테이블에 대한 수정 내용을 지정할 수 있습니다.
트리거로 다른 테이블을 쿼리하거나 트리거에 복잡한 SQL 문을 포함할 수도 있습니다. 트리거는 주로 복잡한 비즈니스 규칙 또는 요구 사항을 적용하는 데 유용합니다. 예를 들어, 고객의 현재 계정 상태에 따라 새 주문을 받아들일지 여부를 제어할 수 있습니다.
트리거는 또한 해당 테이블에 행을 추가, 업데이트 또는 삭제할 때 테이블 간에 정의된 관계를 유지하는 참조 무결성을 적용하는 데에도 유용합니다. 그러나 참조 무결성을 적용하는 가장 좋은 방법은 관련 테이블에서 기본 키 및 외래 키 제약 조건을 정의하는 것입니다. 테이블 디자이너를 사용하는 경우 테이블 간에 관계를 만들어 외래 키 제약 조건을 자동으로 만들 수 있습니다. 자세한 내용은 테이블 관계(Visual Database Tools)를 참조하십시오.
트리거의 장점은 다음과 같습니다.
트리거는 자동으로 발생합니다. 수동 입력 또는 응용 프로그램 동작처럼 테이블 데이터를 수정하면 트리거가 즉시 활성화됩니다.
트리거는 데이터베이스에 있는 관련 테이블이 모두 변경되도록 할 수 있습니다. 예를 들어, titles 테이블의 title_id 열에 대한 삭제 트리거를 작성하여 다른 테이블에 있는 일치 행이 삭제되도록 할 수 있습니다. 트리거는 title_id 열을 고유 키로 사용하여 titleauthor, sales및 roysched 테이블에 있는 일치 행을 찾을 수도 있습니다.
트리거로 CHECK 제약 조건(Visual Database Tools)을 사용하여 정의한 것보다 복잡한 제한을 적용할 수 있습니다. CHECK 제약 조건과는 달리 트리거는 다른 테이블에 있는 열을 참조할 수 있습니다. 예를 들어, 트리거에서는 책(titles 테이블에 저장)에 대해 10달러 할인된 금액(discounts 테이블에 저장)을 적용하려는 업데이트를 롤백할 수 있습니다.
트리거에 대한 자세한 내용 및 예제는 데이터베이스 서버 설명서를 참조하십시오. Microsoft SQL Server를 사용 중인 경우 SQL Server 온라인 설명서의 "CREATE TRIGGER"를 참조하십시오.