none
Trigger DDL RRS feed

  • Question

  • Bonjour,

     

    j'essai de créer un trigger utilisant les DDL pour détecter des créations ou des modifications des bases et d'envoyer le résultat de la détection par mail. En farfouillant sur le net j'ai trouvé des exemple que j'ai modifié mais sans grand résultat.

     

    CREATE TRIGGER E_ALERTE_CREATION_TABLE

    ON SERVER

    FOR CREATE_DATABASE

    AS

    DECLARE @SQLORDER VARCHAR(max)

    declare @body1 varchar(100)

    SELECT @SQLORDER = EVENTDATA().value('(/EVENT_INSTANCE/TSQLCommand/CommandText)[1]','nvarchar(max)')

    EXEC msdb.dbo.sp_send_dbmail @profile_name='Test SMTP',

    @recipients='monmail@hote.fr',

    @subject = 'DB créée dans la base',--+ DB_NAME(),

    @body = '+@@SQLORDER+',

    @body_format = 'HTML'

     

     

    voici l'erreur renvoyé :

    Msg 1098, Niveau 15, État 1, Procédure E_ALERTE_CREATION_TABLE, Ligne 12

    Le ou les types d'événements spécifiés ne sont pas valides pour l'objet cible spécifié.

     

    de plus à la ligne @subject = 'Table créée dans la base',--+ DB_NAME(), je l'ai mis en commentaire car il n'accepte pas la concaténation or j'aimerais pouvoir le mettre (dans le cas ou je voudrais détecter une table créée dans une base)

     

    Merci d'avance

     

    lundi 3 décembre 2007 07:58

Réponses