MS-SQL 트리거(Trigger)에 대해서 간단하게 적어보았습니다.
트리거란?
비디오 대여 샵을 예로 들면 고객이 1번 테이프를 빌려갔는데 '대여중' 표시가 되어 있지 않으면 '대여가능' 이기 때문에 다른 고객에게 실수 할 수 있다.
이럴 때 대여를 해 갔다면 알아서 '대여중'으로 표시되고 다시 반납하면 '대여가능'으로 표시가 된다면 대여 관리가 편해 질것이다.
이처럼 트리거는 하나의 작업이 발생할 때마다 그작업의 발생과 동시에 작동하는 일련의 작업들이다.
한 테이블과 관련되어 존재하는데 Insert, Delete, Update 세가지 형태로 만들수 있다.
트리거 만들기
트리거 사용 예제
트리거란?
비디오 대여 샵을 예로 들면 고객이 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
'DataBase' 카테고리의 다른 글
Windows Server 2008 R2에서 SQL Server 2008 원격 접속 허용하기 (1) | 2010.06.25 |
---|---|
SQL index 초기화 (0) | 2009.11.25 |
새로운 SQL 잘라내기 공격 및 대처 방법 (0) | 2009.07.06 |
MS SQL 커서를 이용한 예제 소스 (0) | 2009.06.30 |
CTE(Common Table Expression) 사용법 (0) | 2009.06.30 |