Email уведомление должно выглядеть так:
Заголовок письма | [server name].[job status].[job desc] |
Тема письма | [job name] |
Тело письма | [job time] |
declare @status nvarchar(5) declare @jobdesc nvarchar(256) declare @jobname nvarchar(256) declare @body_alert nvarchar (max) declare @subject_alert nvarchar (256) declare @getdate nvarchar(26) set @status = 'OK' -- статус OK или ERROR set @jobname = 'Mirror exceed base backup' -- имя задания в агенте mssql set @jobdesc = 'Создание бэкапа бд exceed' -- краткое описание задания,понятное человеку set @getdate = CONVERT(nvarchar(26),getdate(),113) set @body_alert = ' <p><small>Имя сервера</small>: '+@@servername + '</p> <p><small>Название задания в агенте sql server</small>: '+@jobname+'</p> <p><small>Статус задания</small>: '+@status + '</p> <p><small>Описание задания</small>: '+@jobdesc + '</p> <p><small>Письмо отправлено</small>: ' + @getdate+'</p>' set @subject_alert = '['+@@servername + '].['+@status+'].['+ @jobname+']' EXECUTE msdb.dbo.sp_send_dbmail @profile_name = 'atrans', @recipients = 'mail@mail.ru', @subject = @subject_alert, @body_format = 'HTML', @body = @body_alert
USE [master] GO /****** Объект: StoredProcedure [dbo].[rkur_send_job_status] Дата сценария: 07/17/2013 16:19:29 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE PROCEDURE [dbo].[rkur_send_job_status] -- статус OK или ERROR @job_status nvarchar(5) = 'OK', -- имя задания в агенте mssql @job_name nvarchar(256), -- краткое описание задания,понятное человеку @job_desc nvarchar(256), -- Имя профиля в MSSQL, с которого надлежит отослать сообщение @dbmail_profile_name sysname = N'atrans', -- Список с разделителями (точки с запятыми), содержащий адреса электронной почты, по которым будут рассылаться сообщения @dbmail_@recipients varchar(max) = N'mail@mail' AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from -- interfering with SELECT statements. SET NOCOUNT ON; declare @body_alert nvarchar (max) declare @subject_alert nvarchar (256) declare @getdate nvarchar(26) set @getdate = CONVERT(nvarchar(26),getdate(),113) set @body_alert = ' <p><small>Имя сервера</small>: '+@@servername + '</p> <p><small>Название задания в агенте sql server</small>: '+@job_name+'</p> <p><small>Статус задания</small>: '+@job_status + '</p> <p><small>Описание задания</small>: '+@job_desc + '</p> <p><small>Письмо отправлено</small>: ' + @getdate+'</p>' set @subject_alert = '['+@@servername + '].['+@job_status+'].['+ @job_name+']' EXECUTE msdb.dbo.sp_send_dbmail @profile_name = @dbmail_profile_name, @recipients = @dbmail_@recipients, @subject = @subject_alert, @body_format = 'HTML', @body = @body_alert END
Добавление в JOB:
EXEC [master].[dbo].[rkur_send_job_status] @job_name = N'backup_log.ВложенныйПлан_1', @job_desc = N'Архивирование лога транзакций ', @job_status = 'OK', @dbmail_@recipients = N'mail@mail.ru;mail@mail.ru'