触发以捕获服务器中的架构更改

时间:2009-04-07 15:23:57

标签: sql sql-server sql-server-2005 tsql triggers

是否可以实现类似以下触发器的内容

CREATE TRIGGER [tr_AU_ddl_All_Server] ON DATABASE
    WITH EXECUTE AS self
    FOR DDL_DATABASE_LEVEL_EVENTS
AS
    DECLARE
        @data XML
      , @rc INT
    SET @data = EVENTDATA()
    EXEC @rc = __AU.dbo.AU_DDLLog @data
GO

但是在整个服务器上。我的想法是捕获服务器中所有数据库的所有模式更改。

就我而言,这在SQL Server 2005中是不可能的,但我想知道是否有人这样的东西可以工作。我想避免在每个数据库中实现触发器。

1 个答案:

答案 0 :(得分:7)

是的,SQL Server 2005引入了“DDL触发器” - 在SQL Team阅读了一篇很好的文章。

本文很好地说明了它们是DDL触发器的两个范围 - 服务器范围或数据库范围。数据库范围内的那些无法应用于整个服务器 - 您必须在每个数据库中进行设置。

马克