一旦sql job agent被执行,如何知道?

时间:2016-03-29 09:39:08

标签: c# asp.net .net sql-server

我从前端控制台应用程序运行sql server作业,现在我需要在作业执行后立即从数据库返回响应。 我知道如果我在同一个正在运行的作业上发送另一个命令,我可以将返回状态作为正在进行的作业,但我需要知道如何在作业执行后立即从数据库获得响应。我将在我的应用程序中使用该状态来显示,Job已成功执行。

由于

2 个答案:

答案 0 :(得分:0)

您可以在msdbsysjobssysjobhistory中获取有关SQL作业的信息。

SELECT job.name
    , CASE jobHistory.run_status
    WHEN 0 THEN 'Failed'
    WHEN 1 THEN 'Success'
    WHEN 2 THEN 'Retry'
    WHEN 3 THEN 'Cancelled'
END AS Run_Status
FROM msdb.dbo.sysjobs job
INNER JOIN msdb.dbo.sysjobhistory jobHistory ON job.job_id = jobHistory.job_id
WHERE job.name = 'your job name'
GROUP BY job.name, jobHistory.run_status

Source

答案 1 :(得分:0)

SQL在sysjobshistory中存储SQL作业的历史和状态.SQL可以通过电子邮件提醒您,写入事件日志。但据我所知,没有事件可以订阅以查看状态..

C#中有一些示例,它们以相同的方式重复轮询以查看作业status,这与运行查询来检查作业相同。

几乎所有可用的方法都需要您轮询并查看状态,但不会为您提供订阅作业已完成事件的选项