Перейти к содержимому

Шаблон для отправки оповещения на почту

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'

Similar Posts:

Метки:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *