我需要一个SQL查询,它应该为我提供SQL Server中所有作业的最新状态。SQL查询以获取SQL Server中所有作业的状态
查询下面我试图获得状态,但它不会给出SQL服务器中所有作业的状态。
SELECT DISTINCT name AS [Job Name],
CASE WHEN enabled=1 THEN 'Enabled'
ELSE 'Disabled'
END [Job Status],
CASE WHEN SJH.run_status=0 THEN 'Failed'
WHEN SJH.run_status=1 THEN 'Succeeded'
WHEN SJH.run_status=2 THEN 'Retry'
WHEN SJH.run_status=3 THEN 'Cancelled'
ELSE 'Unknown'
END [Job Outcome],
sjh.run_date,
sjh.run_time
FROM SYSJobs sj
LEFT JOIN SYSJobHistory sjh
ON sj.job_id = sjh.job_id
WHERE (
sjh.run_date IN (
SELECT MAX(sjh1.run_date)
FROM SYSJobHistory sjh1
WHERE sjh.job_id = sjh1.job_id
)
OR sjh.run_date IS NULL
)
AND (
sjh.run_time IN (
SELECT MAX(sjh1.run_time)
FROM SYSJobHistory sjh1
WHERE sjh.job_id = sjh1.job_id
)
OR sjh.run_time IS NULL
)
ORDER BY [Job Name]
感谢您的支持。查询按预期工作。 – VENKATESH