TRIGGER
< TRIGGER >
- 특정 TABLE / DB / SERVER에 변경이 있을때 자동으로 수행되는 저장 프로시져
- 유형 : DML TRIGGER, DB DDL TRIGGER, SERVER DDL TRIGGER
1. DML TRIGGER
- DML 이벤트 발생했을 때 동작
- TABLE이나 VIEW에 수행된 INSERT, UPDATE, DELETE 포함
- TRIGGER가 동작할때 자동으로 만들어지는 INSERTED, DELETED TABLE (논리적인, 가상의)
- 특정 이벤트 별 TABLE 동작 방식
- CREATE
CREATE TRIGGER [TRIGGER NAME]
ON [TABLE NAME]
BEFORE | AFTER INSERT | UPDATE | DELETE
AS
작업내용 (QUERY 작성)
- ALTER
ALTER TRIGGER [TRIGGER NAME]
ON [TABLE NAME]
BEFORE | AFTER INSERT | UPDATE | DELETE
AS
작업내용 (QUERY 작성)
- DROP
DROP TRIGGER [TRIGGER NAME]
2. DDL TRIGGER
- DDL 이벤트가 발생했을때 동작 (CREATE, ALTER, DROP)
- INSERTED, DELETED TABLE을 생성하지 않음
1 ) DB 영역 DDL : 해당 DB 내에서만 동작
■ 예시
CREATE_TABLE, ALTER_TABLE, DROP_TABLE
CREATE_VIEW, ALTER_VIEW, DROP_VIEW
CREATE_TRIGGER, ALTER_TRIGGER, DROP_TRIGGER
CREATE_INDEX, ALTER_INDEX, DROP_INDEX
CREATE_PROCEDURE, ALTER_PROCEDURE, DROP_PROCEDURE
☞ TABLE, VIEW, TRIGGER, INDEX, PROCEDURE에 적용
■ CREATE, DROP
1 ) CREATE
CREATE TRIGGER [TRIGGER NAME]
ON DATABASE
FOR [ CREATE | ALTER | DROP TABLE NAME ]
AS
작업내용 (QUERY 작성)
2 ) DROP
DROP TRIGGER [TRIGGER NAME] ON DATABASE
2 ) SERVER 영역 DDL : 해당 SERVER 전체에서 동작
■ 예시
CREATE_LOGIN, ALTER_LOGIN, DROP_LOGIN
■ CREATE, DROP
출처
http://elandda.tistory.com/17