반응형

DBA라면 DDL 트리거의 지원을 많이 기다렸을 겁니다.
DDL
트리거는 UPDATE, DELETE, INSERT 등과 같은 명령문에 작동하는 DML 트리거와 달리 테이블이나 뷰에 대한 CREATE, ALTER DROP 또는 사용자 계정이나 로그인 설정, 프로시저 생성 변경, 파티션 생성 변경 등과 같은 DDL문에 대하여 동작하는 트리거입니다.

다음과 같은 경우에 DDL 트리거를 활용할 있습니다.

?         데이터베이스 스키마에 대한 특정 변경 작업을 방지하려는 경우

?         데이터 스키마가 변경될 데이터베이스에서 특정 작업이 수행되도록 하려는 경우

?         데이터베이스 스키마의 변경 내용이나 이벤트를 기록하려는 경우

 

DDL 트리거는 SQL 문이 완료된 후에 실행이 되며, INSTEAD OF 트리거로 사용될 수는 없습니다. 또한 DML 트리거와 같이 inserted, deleted 테이블을 생성하지는 않습니다. DDL 트리거는 서버에 대해서 설정할 수도 있고 특정 데이터베이스에서만 수행되도록 설정할 수도 있습니다. 데이터베이스, 사용자, 끝점, 로그인 관련 이벤트는 서버 범위의 이벤트 그룹이며, 테이블, , 인덱스 등과 같은 데이터베이스 개체 관련 이벤트는 데이터베이스 범위의 이벤트 그룹입니다.

 

DDL 트리거를 디자인하기 전에 다음 사항이 필요합니다.

?         DDL 트리거 영역에 대하여 이해해야 합니다.

?         어떤 Transact-SQL() 대하여 트리거를 발생시킬 것인지를 결정해야 합니다.

반응형

+ Recent posts