Revista Informática

Listar Jobs con información de la programación

Publicado el 14 febrero 2013 por Fercasas

He creado el siguiente Script el cual nos permitirá listar todos los Jobs activos en un servidor de SQL Server con el detalle de la programación para la ejecución de cada uno de ellos; esta información es de mucha ayuda para mantener actualizada la documentación de nuestros servidores de SQL Server.
USEmsdb
SELECT sysjobsname AS NOMBRE_JOB, CASE freq_typeWHEN 1 THEN 'Una sola vez'WHEN 4 THEN 'Diariamente'WHEN 8 THEN 'Semanalmente'WHEN 16 THEN 'Mensualmente'WHEN 32 THEN 'Mensualmente'WHEN 64 THEN 'Se ejecuta cuando se inicia el servicio del Agente SQL Server'WHEN 128 THEN 'Se ejecuta cuando el equipo está inactivo ' END AS FRECUENCIA, CASE freq_type WHEN 4 THEN 'Cada ' + CAST(freq_interval  AS VARCHAR) + ' Día(s).'WHEN 8 THEN    CASE WHEN freq_interval & 1 = 1 THEN 'Domingo ' ELSE '' END +    CASE WHEN freq_interval & 2 = 2 THEN 'Lunes ' ELSE '' END +    CASE WHEN freq_interval & 4 = 4 THEN 'Martes ' ELSE '' END +    CASE WHEN freq_interval & 8 = 8 THEN 'Miércoles ' ELSE '' END +    CASE WHEN freq_interval & 16 = 16 THEN 'Jueves ' ELSE '' END +    CASE WHEN freq_interval & 32 = 32 THEN 'Viernes ' ELSE '' END +    CASE WHEN freq_interval & 64 = 64 THEN 'Sábado ' ELSE '' END + 'cada ' + CAST(freq_recurrence_factor  AS VARCHAR) + ' semana(s).'WHEN 16 THEN 'En el día '  + CAST(freq_interval  AS VARCHAR) + ' de cada ' + CAST(freq_recurrence_factor  AS VARCHAR) + ' mes(es).'WHEN 32 THEN    CASE WHEN freq_relative_interval =1 THEN 'Cada primer 'ELSE '' END +   CASE WHEN freq_relative_interval =2 THEN 'Cada segundo 'ELSE '' END +   CASE WHEN freq_relative_interval =4 THEN 'Cada tercer 'ELSE '' END +   CASE WHEN freq_relative_interval =8 THEN 'Cada cuarto 'ELSE '' END +   CASE WHEN freq_relative_interval =16 THEN 'Cada último 'ELSE '' END +   CASE freq_interval      WHEN 1 THEN 'Domingo de cada ' + CAST(freq_recurrence_factor  AS VARCHAR) + ' mes(es).'   WHEN 2 THEN 'Lunes de cada ' + CAST(freq_recurrence_factor  AS VARCHAR) + ' mes(es).'    WHEN 3 THEN 'Martes de cada ' + CAST(freq_recurrence_factor  AS VARCHAR) + ' mes(es).'    WHEN 4 THEN 'Miércoles de cada ' +CAST(freq_recurrence_factor  AS VARCHAR) + ' mes(es).'    WHEN 5 THEN 'Jueves de cada ' + CAST(freq_recurrence_factor  AS VARCHAR) + ' mes(es).'    WHEN 6 THEN 'Viernes de cada ' + CAST(freq_recurrence_factor  AS VARCHAR) + ' mes(es).'    WHEN 7 THEN 'Sábado de cada '+ CAST(freq_recurrence_factor  AS VARCHAR) + ' mes(es).'   WHEN 8 THEN 'día de cada ' + CAST(freq_recurrence_factor  AS VARCHAR) + ' mes(es).'    WHEN 9 THEN 'día de la semana de cada ' + CAST(freq_recurrence_factor  AS VARCHAR) + ' mes(es).'    WHEN 10 THEN 'fin de semana de cada '+ CAST(freq_recurrence_factor  AS VARCHAR) + ' mes(es).' END END ASPROGRAMACION, CAST(CAST(sysschedules.active_start_time / 10000 AS VARCHAR(2)) + ':' + CAST(LEFT(RIGHT(sysschedulesactive_start_time, 4), 2) AS VARCHAR(2)) + ':' + CAST(RIGHT(sysschedulesactive_start_time, 2) AS VARCHAR(2)) AS TIME(0)) AS HORA_EJECUCIONFROM sysschedules INNER JOINsysjobschedules ON sysschedulesschedule_id = sysjobschedulesschedule_id RIGHT OUTER JOINsysjobs ON sysjobschedulesjob_id = sysjobsjob_idWHERE (sysjobsenabled = 1)ORDER BY HORA_EJECUCION
Como siempre espero que lo prueben y les sea de mucha utilidad.
Clic aquí para descargar el script.

Volver a la Portada de Logo Paperblog