jueves, 19 de noviembre de 2020

Verificar que job o trabajo de SQL Server falló en un día específico usando consulta T-SQL

Si bien es lo más común ver los jobs en el activity monitor o monitor de actividades del SQL Server Agent. Es posible monitorear los jobs o trabajos mediante consultas o queries.

La siguiente consulta permite ver todos los trabajos o jobs fallaron el primero de mayo del 2020:


SELECT 

      j.name

  ,[step_id]

      ,[step_name]

      ,[sql_message_id]

      ,[sql_severity]

      ,[message]

      ,[run_status]

      ,[run_date]

      ,[run_time]

      ,[run_duration]

      ,[operator_id_emailed]

      ,[operator_id_netsent]

      ,[operator_id_paged]

      ,[retries_attempted]

      ,[server]

  FROM [msdb].[dbo].[sysjobhistory] S

  INNER JOIN

[dbo].[sysjobs] J

on s.job_id=j.job_id

  where run_date=20200501

  and run_status=0


En la consulta anterior se hizo un inner join de la tabla sysjobhistory que contiene el historial de ejecución del trabajo y se usó la tabla sysjobs que nos permite obtener el nombre del job.

run_date contiene la fecha de ejecución en el formato año mes día. Es decir AAAAMMDD.

Run_status es el estado del job. 0 significa que falló.

Acá podemos ver los diferentes estados del job:


--0 = Failed

--1 = Succeeded

--2 = Retry

--3 = Canceled


Si quieres saber más sobre consultas a tablas de jobs, escribe en los comentarios