Revista Informática
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.