一尘不染

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

sql

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

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中是不可能的,但是我想知道是否有人能像这样工作。我想避免必须在每个数据库中实现触发器。


阅读 134

收藏
2021-03-08

共1个答案

一尘不染

是的,SQL Server 2005引入了“ DDL触发器”,请在SQL
Team
上阅读一篇出色的文章。

本文很好地显示了它们是DDL触发器的两个作用域-服务器范围或数据库范围。数据库范围的数据库不能应用于整个服务器-您必须在每个数据库中进行设置。

马克

2021-03-08