MS SQL Send email notification
Иногда нужно отправлять оповещение на почту при определённых условиях, делая это прямо на сервере MS SQL. Для этого мы сделаем так:
- Настраиваем profile name = ‘Email’ в Database Mail на наш внутренний email router (MTA), после проверим отправку через пункт Send Email.
- Создадим MS SQL Job c нужным временем проверки или повтором, как нам нужно.
- Запишем в Step Job
123456789101112131415161718192021222324252627282930DECLARE @subject AS nvarchar(255)DECLARE @body AS nvarchar(max)declare @CountNotification int = -1SELECT @CountNotification = count(*)FROM [base].[dbo].[Notification] n with (nolock)WHERE n.FzPartImported is nullAND n.CreateDateUtc >= DATEADD(day,-3, GETUTCDATE())IF (@CountNotification >200 )--IF (1=1)BEGINSET @subject = N'Notification > 200'SET @body =N'<H4>Notification > 200</H4>' +N'</BR>SELECT @CountNotification = count(*)FROM [base].[dbo].[Notification] n with (nolock)WHERE n.FzPartImported is nullAND n.CreateDateUtc >= DATEADD(day,-5, GETUTCDATE())</BR>'EXEC msdb.dbo.sp_send_dbmail@profile_name = 'Email',-- @recipients = 'a@kepman.ru;other@kepman.ru',@recipients = 'a@kepman.ru',@body = @body,@subject = @subject,@body_format='HTML',@importance = 'High' ;END