To View Job History

automation
#agent-job#automation
SELECT j.name AS 'JobName',
 js.step_name AS 'StepName',
 msdb.dbo.agent_datetime(h.run_date, h.run_time) AS 'RunDateTime',
 h.run_duration,
 ((h.run_duration/10000*3600 + (h.run_duration/100)%100*60 + h.run_duration%100 + 31) / 60) AS 'RunDurationMinutes',
 CASE
 WHEN h.run_status = 0 THEN 'Failed'
 WHEN h.run_status = 1 THEN 'Succeeded'
 WHEN h.run_status = 2 THEN 'Retry'
 WHEN h.run_status = 3 THEN 'Cancelled'
 WHEN h.run_status = 4 THEN 'In Progress'
 ELSE 'Unknown'
 END AS 'Status',
 h.message AS 'Message'
FROM msdb.dbo.sysjobs j
INNER JOIN msdb.dbo.sysjobhistory h ON j.job_id = h.job_id
INNER JOIN msdb.dbo.sysjobsteps js ON h.job_id = js.job_id AND h.step_id = js.step_id
WHERE j.enabled = 1 -- Only Enabled Jobs
 --and j.name = 'DatabaseBackup - USER_DATABASES - FULL' --Uncomment to search for a single job
 AND msdb.dbo.agent_datetime(h.run_date, h.run_time) >= DATEADD(HOUR, -1, GETDATE())
 --and msdb.dbo.agent_datetime(run_date, run_time) BETWEEN '12/08/2012' and '12/10/2012' --Uncomment for date range queries
 AND h.run_status = 0 -- Filter for what type of jobs u need
 AND j.name NOT LIKE '%distribution%' -- Exclude jobs related to distribution
 AND j.name NOT LIKE '%Replication%' -- Exclude jobs related to replication
ORDER BY JobName, RunDateTime DESC