DDL触发器不监视表的触发事件

问题描述:

我有以下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 

没有事件被插入到表中。

这是设计吗?

这是因为GUI使用导致DDL触发器触发的传统语法ALTER TABLE DISABLE TRIGGER,但新语法'DISABLE TRIGGER'没有。

它不是默认跟踪逮住过,前一段时间,你可以投这个问题就在这里:Fire a DDL TRIGGER when the new syntax "DISABLE TRIGGER" is executed

现在我的封闭,不会解决