Comment obtenir la dernière exécution des détails de la tâche en SQL

Comment obtenir la dernière exécution des détails du travail de l'Agent SQL Server à l'aide de SQL, y compris les détails de l'étape seulement pour la dernière exécution du travail (le travail de résultat) que je veux afficher dans une application

S'il vous plaît aider été coincé sur depuis bien longtemps

C'est le code que j'ai été en utilisant ci-dessous, qui ramène toutes les étapes pour tous les Emplois dans l'Histoire de Job,

Cependant, je veux juste voir les étapes de la dernier exécuter le travail

grâce

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
Vous pouvez vous joindre à cette requête avec un autre qui fait un Max(last_run_date), groupying par votre nom de la tâche. Ensuite, votre clause de jointure pourrait rejoindre sur le travail, et aussi la last_run_date

OriginalL'auteur neeko | 2014-01-23