[résolu] utilisation de fetch avec select
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:
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 !