IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Développement SQL Server Discussion :

trigger et sp_sendmail


Sujet :

Développement SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Septembre 2007
    Messages
    75
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 75
    Par défaut trigger et sp_sendmail
    bonjour,
    j'aimerais renvoyer le résultat de mon trigger par mail :

    CREATE TRIGGER E_ALERTE_CREATION_TABLE
    ON SERVER
    FOR CREATE_TABLE
    AS
    DECLARE @SQLORDER VARCHAR(max)
    SELECT @SQLORDER = EVENTDATA().value('(/EVENT_INSTANCE/TSQLCommand/CommandText)[1]','nvarchar(max)')
    EXEC xp_sendmail @recipients = 'monadresse@blabla.com,
    @subject = 'Table créée dans la base ' + DB_NAME(),
    @message = @SQLORDER


    or @subject et @message n'accepte pas les commandes ou variables ... sauriez-vous comment renvoyer le résultat de ma variable ? j'ai fait plusieurs test sans résultats ...
    merci d'avance

  2. #2
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    22 002
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 22 002
    Billets dans le blog
    6
    Par défaut
    Quelque chose comme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    CREATE TRIGGER E_ALERTE_CREATION_TABLE
    ON SERVER
    FOR CREATE_TABLE
    AS
    DECLARE @SQLORDER VARCHAR(max)
    SELECT @SQLORDER = EVENTDATA().value('(/EVENT_INSTANCE/TSQLCommand/CommandText)[1]','nvarchar(max)')
     
    DECLARE @recipients ??, @subject ???, @message ???;
    SET @subject = 'Table créée dans la base ' + DB_NAME();
    SET @message = @SQLORDER;
    SET @recipients = 'monadresse@blabla.com';
    EXEC xp_sendmail @recipients, @subject, @message;
    Remplacez les ??? par les bon types.

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  3. #3
    Membre confirmé
    Inscrit en
    Septembre 2007
    Messages
    75
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 75
    Par défaut
    euh non ta solution ne marche pas. J'ai oublié de préciser que je travaille sous SQL SERVER 2005.

    en faite les procédé de mail on changé, voilà mes modifs :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    CREATE TRIGGER E_ALERTE_CREATE_DROP_DATABASE
       ON  ALL SERVER
       FOR CREATE_DATABASE, DROP_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='monadresse@blabla.com',
    	@subject = 'Table créée dans la base' --+ DB_NAME()
    l'envoi de mail grâce au déclencheur marche très bien, mon problème est que je ne sais pas ce qui s'est passé. je ne sais pas comment renvoyer EVENTDATA, où le mettre ... de plus à la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    @subject = 'Table créée dans la base' --+ DB_NAME()
    Le + DB_NAME n'est pas accepté avec @subject

  4. #4
    Membre confirmé
    Inscrit en
    Septembre 2007
    Messages
    75
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 75
    Par défaut
    up

  5. #5
    Membre confirmé
    Inscrit en
    Septembre 2007
    Messages
    75
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 75
    Par défaut
    c'est bon j'ai réglé mon problème merci quand même

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [power designer et Sybase] trigger
    Par mr_qno dans le forum Sybase
    Réponses: 4
    Dernier message: 12/07/2006, 18h32
  2. [Interbase6] Trigger : Post_event
    Par Andry dans le forum InterBase
    Réponses: 2
    Dernier message: 13/05/2003, 09h27
  3. Trigger ??
    Par XDeus dans le forum Développement
    Réponses: 6
    Dernier message: 31/03/2003, 09h44
  4. [PostgreSQL] Refus de STATEMENT dans un trigger
    Par alex2205 dans le forum Requêtes
    Réponses: 3
    Dernier message: 10/03/2003, 12h51
  5. [Comparatif] Procédures stockées, triggers, etc.
    Par MCZz dans le forum Décisions SGBD
    Réponses: 3
    Dernier message: 28/08/2002, 12h27

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo