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

Хранимая процедура отправки сообщения

USE [master]
GO

/****** Object:  StoredProcedure [dbo].[rkur_send_job_status]    Script Date: 08/18/2015 10:08:58 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:                    Ruslan Kurianov
-- Create date: 2013-07-17
-- Description:          agent mssql job email
-- version: 0.3
-- =============================================
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'event.messages@ctmol.ru'

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

GO

В задании

EXEC          [master].[dbo].[rkur_send_job_status]
                    @job_name = N'LSRestore_s0030_ax_molniya',
                    @job_desc = N''LSRestore.Развернут бэкап лога транзакций на зеркало БД Аксапта S0023',
                    @job_status = 'OK',
                    @dbmail_@recipients = N'event.messages@ctmol.ru'

 

Similar Posts:

Метки:

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

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