MS-SQL 트리거(Trigger)에 대해서 간단하게 적어보았습니다.

트리거란?

비디오 대여 샵을 예로 들면 고객이 1번 테이프를 빌려갔는데 '대여중' 표시가 되어 있지 않으면 '대여가능' 이기 때문에 다른 고객에게 실수 할 수 있다.
이럴 때 대여를 해 갔다면 알아서 '대여중'으로 표시되고 다시 반납하면 '대여가능'으로 표시가 된다면 대여 관리가 편해 질것이다.
이처럼 트리거는 하나의 작업이 발생할 때마다 그작업의 발생과 동시에 작동하는 일련의 작업들이다.
한 테이블과 관련되어 존재하는데 Insert, Delete, Update 세가지 형태로 만들수 있다.

트리거 만들기
트리거 생성 구문

CREATE TRIGGER 트리거이름 ON { table | view }
[WITH ENCRYPTION]
{
{ {FOR | AFTER | INSTEAD OF }
{ [INSERT][,][UPDATE][,][DELETE]}

AS
SQL구문

트리거 사용 예제
A테이블의 INSERT 되는 내용을 B테이블에 자동으로 저장 할 때

CREATE TRIGGER tr_INSERT ON A
FOR INSERT
AS
 INSERT INTO B
  SELECT *,'INSERT' FROM INSERTED

A테이블의 DELETE 되는 내용을 B테이블에 자동으로 저장 할 때

CREATE TRIGGER tr_DELETE ON A
FOR DELETE
AS
 INSERT INTO B
  SELECT *,'DELETE' FROM DELETED

A테이블의 UPDATE 되는 내용을 B테이블에 자동으로 저장 할 때
(UPDATE할때는 INSERTED와 DELETED가 함께 발생 합니다.)

CREATE TRIGGER tr_UPDATE ON A
FOR UPDATE
AS
 INSERT INTO B
  SELECT *,'UPDATEINSERT' FROM INSERTED
 INSERT INTO B
  SELECT *,'UPDATEDELETE' FROM DELETED

+ Recent posts