연구개발/DBA

데이터베이스 내 테이블 생성 감시 트리거(TRIGGER)

HEAD1TON 2011. 8. 22. 17:07
USE AdventureWorks;
GO
CREATE TABLE DB_LOG(MSG VARCHAR(1000), LOG_DT DATETIME DEFAULT GETDATE())
GO

CREATE TRIGGER DDL_TRG_NewTable
ON DATABASE
FOR CREATE_TABLE
AS
INSERT DB_LOG(MSG)
VALUES (EVENTDATA().value('(/EVENT_INSTANCE/TSQLCommand/CommandText)[1]', 'NVARCHAR(MAX)'))
GO

CREATE TABLE XXX(ID    VARCHAR(100))
GO
SELECT * FROM DB_LOG;
GO

-------------------------------------------------------------------------------------
MSG                                                                     LOG_DT
CREATE TABLE XXX(ID VARCHAR(100))      2011-08-22 17:07:59.387