SQL programming 
트리거 (Trigger)

SQL 서버 혹은 데이타베이스안에 어떤 이벤트가 발생했을 대, 일련의 SQL 문장들을 실행하게 하는 것이 트리거이다. 트리거에는 SQL 서버 로그인시에 실행하는 LOGON TRIGGER, 특정 데이타베이스 안의 DDL 이벤트 (예를 들어, CREATE TABLE 등)에 반응하는 DDL 트리거, 그리고 테이블이나 뷰의 SELECT, UPDATE, DELETE, INSERT 등에 반응하는 DML 트리거 등이 있다.





DML 트리거 (Trigger)

테이블에 어떤 데이타가 삽입, 삭제 혹은 갱신되었을 때, 미리 지정한 일련의 SQL 문장들을 수행하게 할 수 있는데, 이를 DML 트리거라 한다. DML 트리거는 테이블에 수행되는 작업에 따라 INSERT TRIGGER, DELETE TRIGGER, UPDATE TRIGGER가 있다. 예를 들어, 아래 예제는 테이블 ABC에 데이타가 추가될 때마다, LogTable에 해당 키값과 날짜를 자동으로 기록하는 INSERT TRIGGER의 예이다.

예제





트리거의 논리적 테이블 : INSERTED, DELETED

트리거는 새로 추가되는 레코드와 기존 레코드를 논리적인 테이블 INSERTED, DELETED에 각각 갖게 되는데, INSERT TRIGGER의 경우 INSERTED를, DELETE TRIGGE의 경우 DELETED를 각각 트리거 안에서 사용할 수 있다. UPDATE TRIGGER의 경우는 이전 값을 저장하고 있는 DELETED 테이블과 새로운 값을 저장하는 INSERTED 테이블을 함께 사용할 수 있다. 아래 예는, UPDATE TRIGGER의 경우 이전 값과 새로운 값들을 논리적 테이블들을 이용해 보여주는 예제이다.

예제





본 웹사이트는 광고를 포함하고 있습니다. 광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.