我们可以发送有关作业失败/成功的通知,但如果作业未按计划时间开始,我们可以创建一个脚本,该脚本会向我的邮箱发送通知,说“作业没有启动” ?
答案 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表达式向您发送电子邮件。
感谢。