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

Ala*_*ton 3 sql t-sql sql-server triggers sql-server-2005

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

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
Run Code Online (Sandbox Code Playgroud)

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

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

mar*_*c_s 7

是的,SQL Server 2005引入了"DDL触发器" - 在SQL Team上阅读了一篇优秀的文章.

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

渣