아카이브

TRIGGER 본문

데이터베이스

TRIGGER

주멘이 2018. 6. 6. 17:13

< 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_DATABASE, ALTER_DATABASE, DROP_DATABASE
CREATE_LOGIN, ALTER_LOGIN, DROP_LOGIN

DATABASE, LOGIN에 적용


■ CREATE, DROP

1) CREATE

CREATE TRIGGER [TRIGGER NAME]

ON ALL SERVER

FOR [ SERVER]

AS

작업내용 (QUERY 작성)

3. TRIGGER ENABLE / DISABLE

DISABLE | ENABLE TRIGGER [TRIGGER NAME]
ONT ALL SERVER


출처

http://elandda.tistory.com/17













'데이터베이스' 카테고리의 다른 글

Clustered Index VS Non-Clustered Index  (0) 2018.06.09
Stored Procedure ( 저장 프로시저 )  (0) 2018.06.09
무결성(Integrity)  (0) 2018.06.09
DBMS  (0) 2018.06.06
1 : 1 / 1 : N / N : M  (0) 2018.06.06