2017-08-22 57 views
0

我有以下DDL觸發器:DDL觸發器不監視表的觸發事件

CREATE TABLE ddl_log (PostTime datetime, DB_User nvarchar(100), Event nvarchar(100), TSQL nvarchar(2000)); 
GO 
CREATE TRIGGER log 
ON DATABASE 
FOR DDL_DATABASE_LEVEL_EVENTS 
AS 
DECLARE @data XML; 
SET @data = EVENTDATA(); 
INSERT ddl_log 
    (PostTime, DB_User, Event, TSQL) 
    VALUES 
    (GETDATE(), 
    CONVERT(nvarchar(100), CURRENT_USER), 
    @data.value('(/EVENT_INSTANCE/EventType)[1]', 'nvarchar(100)'), 
    @data.value('(/EVENT_INSTANCE/TSQLCommand)[1]', 'nvarchar(2000)')) ; 
GO 

當我使用SSMS(即UI)以啓用/禁用一個表觸發器,一個事件被插入到表中。

然而,當我使用T-SQL如下:

ENABLE trigger tr_mytable ON mytable 

沒有事件被插入到表中。

這是設計嗎?

回答