我从前端控制台应用程序运行sql server作业,现在我需要在作业执行后立即从数据库返回响应。 我知道如果我在同一个正在运行的作业上发送另一个命令,我可以将返回状态作为正在进行的作业,但我需要知道如何在作业执行后立即从数据库获得响应。我将在我的应用程序中使用该状态来显示,Job已成功执行。
由于
答案 0 :(得分:0)
您可以在msdb
表sysjobs
和sysjobhistory
中获取有关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
答案 1 :(得分:0)
SQL在sysjobshistory中存储SQL作业的历史和状态.SQL可以通过电子邮件提醒您,写入事件日志。但据我所知,没有事件可以订阅以查看状态..
C#中有一些示例,它们以相同的方式重复轮询以查看作业status,这与运行查询来检查作业相同。
几乎所有可用的方法都需要您轮询并查看状态,但不会为您提供订阅作业已完成事件的选项