SQL Server Agent Jobs sind das Rückgrat automatisierter Datenbankoperationen – Backups, Wartungsaufgaben, ETL-Prozesse. Dieses Monitoring-Script gibt sofort Überblick über alle Jobs, ihre letzte Ausführung und eventuelle Fehler.
Alle Jobs mit letzter Ausführung
SELECT
j.name AS job_name,
j.enabled,
CASE jh.run_status
WHEN 0 THEN 'Failed'
WHEN 1 THEN 'Succeeded'
WHEN 2 THEN 'Retry'
WHEN 3 THEN 'Cancelled'
END AS last_run_status,
msdb.dbo.agent_datetime(jh.run_date, jh.run_time) AS last_run_datetime,
STUFF(STUFF(RIGHT('000000' + CAST(jh.run_duration AS VARCHAR), 6), 3, 0, ':'), 6, 0, ':')
AS duration_hhmmss,
jh.message AS last_message
FROM msdb.dbo.sysjobs j
LEFT JOIN msdb.dbo.sysjobhistory jh
ON j.job_id = jh.job_id
AND jh.instance_id = (
SELECT MAX(instance_id)
FROM msdb.dbo.sysjobhistory
WHERE job_id = j.job_id
AND step_id = 0
)
ORDER BY j.name;
Nur fehlgeschlagene Jobs der letzten 24 Stunden
SELECT
j.name AS job_name,
msdb.dbo.agent_datetime(jh.run_date, jh.run_time) AS failed_at,
jh.message
FROM msdb.dbo.sysjobs j
JOIN msdb.dbo.sysjobhistory jh ON j.job_id = jh.job_id
WHERE jh.run_status = 0 -- Failed
AND jh.step_id = 0 -- Job-Level, nicht Step-Level
AND msdb.dbo.agent_datetime(jh.run_date, jh.run_time) > GETDATE() - 1
ORDER BY failed_at DESC;
Dieses Script eignet sich hervorragend für tägliche Health-Check-Reports oder als Grundlage für Alert-Systeme. Kombiniert mit SQL Server Database Mail kann man bei Job-Fehler automatisch E-Mail-Benachrichtigungen senden.








