반응형
DDL 트리거는 무엇인가 ? What are DDL triggers ?
DDL 트리거는 DDL 이벤트에 실행으로 반응한다. DDL과 유사한 작업을 수행하는 특정 시스템에 저장 프로시저도 DDL 트리거를 실행할 수 있다.
DDL triggers fire in response to DDL events-CREATE, ALTER, and DROP(Table, Function, Index, Stored Procedure etc...). Certain system stored Procedures that perform DDL-like operations can also fire DDL triggers.
혹시 DDL 이벤트 리스트가 더 보고 싶다면 참고.
트리거 사용처 What is the use of DDL triggers
- 특정 DDL 이벤트에 대한 반응으로 실행할 때 If you want to execute some code in response to a specific DDL event
- 데이터베이스 스키마 어떠한 변경을 막을 때 To prevent certain changes to your database schema
- 유저가 데이터베이스 구조를 변경할 때 Audit the changes that the users are making to the database structure
데이터베이스 트리거 만드는 예시)
-- This trigger fires whenever a table is created
-- Trigger that fires in response to a single DDL event
Create trigger trMyFirstTrigger
ON Database
FOR CREATE_TABLE
AS
BEGIN
Print 'New table created'
END
-- This trigger fires whenever a table is created, alterd or dropped
-- Trigger that fires in response to a multiple DDL events
ALTER TRIGGER trMyFirstTrigger
ON Database
FOR CREATE_TABLE, ALTER_TABLE, DROP_TABLE
AS
BEGIN
Print 'You just created, modified or deleted a table'
END
정보 :
DDL 트리거는 특정 데이터베이스나 서버 범위에 만들어질 수 있다. DDL triggers can be created in a specific database or at the server level.
서버 전역 트리거 만드는 예시)
CREATE TRIGGER tr_ServerScopeTrigger
ON ALL SERVER
FOR CREATE_TABLE,ALTER_TABLE, DROP_TABLE
AS
BEGIN
ROLLBACK
Print 'You cannot create, alter or drop a table'
END
트리거 사용하지 않기 예시)
DISABLE TRIGGER tr_ServerScopeTrigger ON ALL SERVER
반응형
'Database > SQL Server' 카테고리의 다른 글
SQL Server - DDL 트리거 이용하여 테이블의 변화 감지 Audit Table changes in SQL Server (0) | 2020.12.12 |
---|---|
SQL Server - 저장 프로시저로 트리거 순서 설정 / Trigger Execution Order (0) | 2020.12.12 |
SQL Server - Cross apply & Outer apply in SQL Server (0) | 2020.12.12 |
SQL Server - UNION , INTERSECT , EXCEPT 연산자 (0) | 2020.12.11 |
SQL Server - Intersect 연산자(operator) (0) | 2020.12.11 |