DDL 트리거

SQL Server에서 트리거 구축 및 최적화

Florin Angelescu

Instructor

정의와 속성

DML 트리거

  • DML 문과 연결된 이벤트 INSERT, UPDATE, DELETE
  • AFTER 또는 INSTEAD OF 사용
  • 테이블 또는 뷰에 연결
  • inserted, deleted 특수 테이블

DDL 트리거

  • DDL 문과 연결된 이벤트 CREATE, ALTER, DROP
  • AFTER만 사용
  • 데이터베이스 또는 서버에 연결
  • 특수 테이블 없음
SQL Server에서 트리거 구축 및 최적화

AFTER와 FOR

CREATE TRIGGER DatabaseChangeLog
FOR CREATE_TABLE
[...]
SQL Server에서 트리거 구축 및 최적화

AFTER와 FOR

CREATE TRIGGER TrackDatabaseTables
FOR CREATE_TABLE
[...]

AFTER = FOR

SQL Server에서 트리거 구축 및 최적화

DDL 트리거 전제 조건

  • 대상 객체(서버 또는 데이터베이스)
  • 트리거 설명
  • 트리거 발생 이벤트(DDL)
  • 트리거 이름
  • DATABASE
  • 정의 변경 로그 테이블
  • CREATE_TABLE,ALTER_TABLE,DROP_TABLE
  • TrackTableChanges
SQL Server에서 트리거 구축 및 최적화

DDL 트리거 정의

CREATE TRIGGER TrackTableChanges

ON DATABASE
FOR CREATE_TABLE, ALTER_TABLE, DROP_TABLE
AS INSERT INTO TablesChangeLog (EventData, ChangedBy) VALUES (EVENTDATA(), USER);
SQL Server에서 트리거 구축 및 최적화

DML 트리거의 발생 이벤트 차단

CREATE TRIGGER PreventTableDeletion
ON DATABASE
FOR DROP_TABLE

AS RAISERROR ('이 데이터베이스에서 테이블을 삭제할 수 없습니다.', 16, 1); ROLLBACK;
SQL Server에서 트리거 구축 및 최적화

Ayo berlatih!

SQL Server에서 트리거 구축 및 최적화

Preparing Video For Download...