通知JOB未在SQL Server代理2008中启动

时间:2014-06-04 11:39:34

标签: sql-server-2008

我们可以发送有关作业失败/成功的通知,但如果作业未按计划时间开始,我们可以创建一个脚本,该脚本会向我的邮箱发送通知,说“作业没有启动” ?

2 个答案:

答案 0 :(得分:0)

documentation,以下是唯一可以通知的案例。所以,JOB Doesn't start甚至不在列表中;这意味着您无法为此设置通知。

但我的想法是,如果您知道在一天内您应该获得N个工作的N电子邮件通知,您可以检查并找出哪个工作没有运行。

  
      
  • 当作业成功完成时作业成功通知操作员。

  •   
  • 当作业未能成功完成时作业无法通知操作员。

  •   
  • 当作业完成时,无论完成状态如何都通知操作员。

  •   

答案 1 :(得分:0)

SELECT DISTINCT
 J.NAME AS 'JOBNAME',
 MSDB.DBO.AGENT_DATETIME(RUN_DATE, RUN_TIME) AS 'RUNDATETIME'
INTO #TEMP
FROM MSDB.DBO.SYSJOBS J 
INNER JOIN MSDB.DBO.SYSJOBHISTORY H 
 ON J.JOB_ID = H.JOB_ID 
WHERE J.ENABLED = 1  --ONLY ENABLED JOBS
ORDER BY JOBNAME, RUNDATETIME DESC

IF NOT EXISTS (
    SELECT * FROM #TEMP
    WHERE JOBNNAME = 'JOBNAME'
    AND RUNDATETIME = 'RUNDATETIME')
        BEGIN

            SEND AN EMAIL

        END

没有简单的方法可以执行此操作,但您可以查询作业历史记录表以检查是否已记录作业开始时间。如果没有,您可以使用IF表达式向您发送电子邮件。

感谢。