2009-04-07 10 views
3

Ist es möglich, so etwas wie der folgende TriggerTrigger Schemaänderungen in dem Server zu erfassen

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 

, sondern auf dem gesamten Server zu implementieren. Meine Idee ist es, alle Schemaänderungen über alle Datenbanken auf dem Server zu erfassen.

Soweit dies möglich ist, ist dies in SQL Server 2005 nicht möglich, aber ich würde gerne wissen, ob jemand so etwas funktioniert. Ich möchte vermeiden, einen Trigger in jeder einzelnen Datenbank implementieren zu müssen.

Antwort

7

Ja, SQL Server 2005 führte die "DDL Trigger" ein - lesen Sie hier einen exzellenten Artikel unter SQL Team.

Dieser Artikel zeigt, dass sie zwei Bereiche für DDL-Trigger sind - serverweit oder datenbankweit. Diejenigen, die datenbankweit sind, können nicht auf den gesamten Server angewendet werden - Sie müssen sie in jeder Datenbank einrichten.

Marc

+0

danke. Ich dachte es, aber ich hatte gehofft, dass es eine Arbeit geben würde. –

Verwandte Themen