Trigger qui envoie un email
Bonjour,
Je travaille avec un serveur SQL 2008.
J'aimerais créer un trigger qui envoie un email lorsqu'il détecte qu'un certain champ lors de l'ajout dans la table a la valeur plus petite que 20.
Mon trigger fonctionne bien comme ceci :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| ALTER TRIGGER [DiskSpace].[low_disk_space_notification]
on [DiskSpace].[FreeSpace]
after insert
AS
BEGIN
SET NOCOUNT ON;
if (select disksize from inserted where percentage < 20) > 0
BEGIN
EXEC msdb..sp_send_dbmail @profile_name = 'ClusterMailProfile',
@recipients='jacinthe.bouchard@lassonde.com',
@subject='Subject',
@body='Body'
END
END |
Cependant, si j'ajoute la clause @query dans mon envoie de email, alors là, rien ne va plus :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| ALTER TRIGGER [DiskSpace].[low_disk_space_notification]
on [DiskSpace].[FreeSpace]
after insert
AS
BEGIN
SET NOCOUNT ON;
if (select disksize from inserted where percentage < 20) > 0
BEGIN
EXEC msdb..sp_send_dbmail @profile_name = 'ClusterMailProfile',
@recipients='adresse@compagnie.com',
@subject='Subject',
@body='Body',
@query='select * from administrator.diskspace.freespace'
END
END |
Avec la clause @query, si je fais un ajout dans ma table, l'insert ne se termine jamais et cela créé un lock sur le serveur !
Je ne comprend pas pourquoi cela ne fonctionne pas ! Vous avez des idées ?
Si j'exécute l'envoie de email en dehors du trigger, cela fonctionne !
Merci,
Baq' :fleur::fleur: