如何使用SQL獲取SQL Server代理中的上次運行作業詳細信息,包括僅用於上次運行作業(而非作業結果)的步驟詳細信息,因爲我想在如何獲取SQL中的上次運行作業詳細信息
幫助被困在了好久了
這是我一直在使用下面的代碼請申請,這勾起了所有的工作作業歷史記錄的所有步驟,
不過,我只是想查看最近的步驟運行作業
個感謝
USE msdb
Go
SELECT j.name JobName,h.step_name StepName,
CONVERT(CHAR(10), CAST(STR(h.run_date,8, 0) AS dateTIME), 111) RunDate,
STUFF(STUFF(RIGHT('000000' + CAST (h.run_time AS VARCHAR(6)) ,6),5,0,':'),3,0,':') RunTime,
h.run_duration StepDuration,
case h.run_status when 0 then 'Failed'
when 1 then 'Succeeded'
when 2 then 'Retry'
when 3 then 'Cancelled'
when 4 then 'In Progress'
end as ExecutionStatus,
h.message MessageGenerated
FROM sysjobhistory h
inner join sysjobs j
ON j.job_id = h.job_id
LEFT JOIN (
SELECT
[job_id]
, [run_date]
, [run_time]
, [run_status]
, [run_duration]
, [message]
, ROW_NUMBER() OVER (
PARTITION BY [job_id]
ORDER BY [run_date] DESC, [run_time] DESC
) AS RowNumber
FROM [msdb].[dbo].[sysjobhistory]
WHERE [step_id] = 0
) AS [sJOBH]
ON j.[job_id] = [sJOBH].[job_id]
AND [sJOBH].[RowNumber] = 1
where j.job_id = 'F04E5D3B-C873-448A-805C-C6309A92DAEC'
ORDER BY j.name, h.run_date, h.run_time desc
GO
您可以將此查詢與另一個執行Max(last_run_date)的查詢合併,並按您的作業名稱進行分組。然後你的加入條款可以加入工作,也是last_run_date – ganders