2009-04-07 7 views
3

Est-il possible de mettre en œuvre quelque chose comme le déclencheur suivantTrigger pour saisir les changements de schéma dans le serveur

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 

, mais sur l'ensemble du serveur. Mon idée est de capturer tous les changements de schéma dans toutes les bases de données du serveur. En ce qui me concerne, ce n'est pas possible dans SQL Server 2005, mais j'aimerais savoir si quelqu'un a quelque chose comme ça pour fonctionner. Je voudrais éviter d'avoir à implémenter un déclencheur dans chaque base de données.

Répondre

7

Oui, SQL Server 2005 a introduit les "DDL Triggers" - lisez un excellent article à ce sujet au SQL Team.

Cet article montre bien qu'il s'agit de deux étendues pour les déclencheurs DDL - sur l'ensemble du serveur ou pour l'ensemble de la base de données. Ceux qui sont à l'échelle de la base de données ne peuvent pas être appliqués à l'ensemble du serveur - vous devez les configurer dans chaque base de données.

Marc

+0

merci. Je le pensais, mais j'espérais qu'il y aurait un travail autour. –

Questions connexes