SQL维护计划 – 发送失败的电子邮件

我有一个维护计划在我的SQL 2008框 – 我想它发送一个电子邮件地址时(或如果)失败。 我build立了数据库邮件,并可以发送testing邮件。

我怎样才能做到这一点?

  1. configurationSQL Server代理使用数据库邮件
  2. 创build运营商的邮件,传呼机,小时等。
  3. configuration维护计划,根据退出条件向适当的操作员发送电子邮件。

http://msdn.microsoft.com/en-us/library/ms186358.aspx

http://technet.microsoft.com/en-us/library/ms175962.aspx

将一个执行SQL任务添加到您的维护计划中,调用sp_send_dbmail并将任何其他任务的故障路由连接到此任务。

我们添加了“执行T-SQL语句任务”,调用一个存储过程,维护计划的名称作为参数:

EXEC server.schema.SP_SENDALERT 'plan.subplan'; 

在那个存储过程中,我们回到SYSJOBS和SYSJOBHISTORY查询计划,以获得最后一个“失败”的消息,然后我们发送到“IT支持”作为send_dbmail的一部分(这是由一个过程循环通过消息传递表中的未发送消息),按照如下方式:

 CREATE PROCEDURE SP_SENDALERT (@plan VARCHAR(MAX)) AS BEGIN DECLARE @error VARCHAR(MAX) SELECT TOP 1 @error = SJH.[MESSAGE]FROM MSDB.DBO.SYSJOBS SJ LEFT JOIN MSDB.DBO.SYSJOBHISTORY SJH ON SJ.JOB_ID = SJH.JOB_ID WHERE SJ.ENABLED = 1 AND SJH.RUN_STATUS = 0 AND SJ.[NAME] = @plan ORDER BY SJH.RUN_DATE, RUN_TIME DESC INSERT INTO database.schema.MESSAGING (MESSAGE_TYPE, MESSAGE_SUBJECT, MESSAGE_BODY, RECIPIENTS, RECORD_ADDED) VALUES (1, 'ERROR: ' + @plan, @error, '[email protected]', GETDATE()) END