是否可以实现类似以下触发器的内容
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中是不可能的,但我想知道是否有人这样的东西可以工作。我想避免在每个数据库中实现触发器。
答案 0 :(得分:7)
是的,SQL Server 2005引入了“DDL触发器” - 在SQL Team阅读了一篇很好的文章。
本文很好地说明了它们是DDL触发器的两个范围 - 服务器范围或数据库范围。数据库范围内的那些无法应用于整个服务器 - 您必须在每个数据库中进行设置。
马克