Bonjour,

je souhaite créer un déclencheur et envoyer un mail d'avertissement aux utilisateurs enregistrés.
La création du déclencheur ne pose pas de problèmes.
J'ai une table qui contient tous les utilisateurs avec leur adresse mail.
Dans le déclencheur, il y a une requête qui sélectionne les utlisateurs suivant un critère de région. La sélection s'effectue sans difficultés.

Par contre, je souhaite faire une concaténation de tous les adresses mails pour éviter d'envoyer plusieurs le même message. C'est dans la concaténation que ça plante et je vois pas comment faire.

Voici le code :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
CREATE TRIGGER nvperso
ON PERSONNE
FOR UPDATE
AS
	Declare @Nom nvarchar(50), @Prenom nvarchar(50), @msg nvarchar(50), @EmailT varchar(50), @EmailReg varchar(300)
   Select @Nom = NomPersonne from inserted
   Select @Prenom = PrenomPersonne from inserted
   Set @msg = @Nom +' ' +@Prenom + ' a été modifié'
 
   DECLARE Email_cursor CURSOR FOR
   Select Email from Utilisateurs inner join Communes on Utilisateurs.Region = Communes.Region
	inner join inserted on Communes.IdCommune = inserted.IdCommuPersonne
   OPEN Email_cursor
   FETCH NEXT FROM Email_cursor INTO @EmailT
   WHILE @@FETCH_STATUS = 0
        BEGIN
	set @EmailReg = @EmailReg + @EmailT + ';'  --cette ligne ne marche pas
   	FETCH NEXT FROM Email_cursor INTO @EmailT
       END
   CLOSE Email_cursor
   DEALLOCATE Email_cursor
 
   EXEC master..xp_sendmail @recipients = 'toto@toto.fr',
      @message = @EmailT,
      @subject = @msg
Dans le message, j'ai rien du tout. En testant dans l'analyseur de requêtes, c'est au niveau du set @EmailReg = ... que ça marche pas. Toutes les autres instructions sont executées.

Est ce quelqu'un a une idée ?

Merci !