Use the below code to get SQL Server Job Properties.
select t1.name as jobName,
case t1.enabled
when 1 then 'Enabled'
else 'Disabled'
end as jobStatus,
t3.name as scheduleName,
case t3.enabled
when 1 then 'Enabled'
else 'Disabled'
end as scheduleStatus,
case freq_type
when 1 then 'Once Only'
when 4 then 'Daily'
when 8 then 'Weekly'
when 16 then 'Monthly'
when 32 then 'Monthly'
end as frequency,
case
when freq_type = 4 then 'SuMoTuWeThFrSa'
when freq_type = 8 then
case
when t3.freq_interval & 1 = 1 then 'Su'
else ''
end +
case
when t3.freq_interval & 2 = 2 then 'Mo'
else ''
end +
case
when t3.freq_interval & 4 = 4 then 'Tu'
else ''
end +
case
when t3.freq_interval & 8 = 8 then 'We'
else ''
end +
case
when t3.freq_interval & 16 = 16 then 'Th'
else ''
end +
case
when t3.freq_interval & 32 = 32 then 'Fr'
else ''
end +
case
when t3.freq_interval & 64 = 64 then 'Sa'
else ''
end
when freq_type = 16 then 'Day ' + convert(varchar(2), freq_interval)
when freq_type = 32 then
case
when t3.freq_interval = 1 then 'Su'
when t3.freq_interval = 2 then 'Mo'
when t3.freq_interval = 3 then 'Tu'
when t3.freq_interval = 4 then 'We'
when t3.freq_interval = 5 then 'Th'
when t3.freq_interval = 6 then 'Fr'
when t3.freq_interval = 7 then 'Sa'
when t3.freq_interval = 8 then 'SuMoTuWeThFrSa'
when t3.freq_interval = 9 then 'MoTuWeThFr'
when t3.freq_interval = 10 then 'SuSa'
end
end as daysRunning,
right('000000' + convert(varchar(6), active_start_time), 6) as startTime,
right('000000' + convert(varchar(6), active_end_time), 6) as endTime,
case
when freq_type = 32 and freq_relative_interval > 0 then 'Every ' +
case t3.freq_relative_interval
when 1 then '1st '
when 2 then '2nd '
when 4 then '3rd '
when 8 then '4th '
when 16 then 'last '
end +
case t3.freq_interval
when 1 then 'Su'
when 2 then 'Mo'
when 3 then 'Tu'
when 4 then 'We'
when 5 then 'Th'
when 6 then 'Fr'
when 7 then 'Sa'
when 9 then 'MoTuWeThFr'
when 10 then 'SuSa'
end
when t3.freq_subday_type = 1 then 'Once'
when t3.freq_subday_type = 2 then 'Every ' + convert(varchar(25), t3.freq_subday_interval) + ' seconds'
when t3.freq_subday_type = 4 then 'Every ' + convert(varchar(25), t3.freq_subday_interval) + ' minutes'
when t3.freq_subday_type = 8 then 'Every ' + convert(varchar(25), t3.freq_subday_interval) + ' hours'
end as occurence,
case
when freq_type = 32 and freq_recurrence_factor >= 1 then 'Every ' + convert(varchar(5), freq_recurrence_factor) + ' month(s)'
when freq_type = 16 and freq_recurrence_factor >= 1 then 'Every ' + convert(varchar(5), freq_recurrence_factor) + ' month(s)'
when freq_type = 8 and freq_recurrence_factor >= 1 then 'Every ' + convert(varchar(5), freq_recurrence_factor) + ' week(s)'
when freq_type = 4 then 'Daily'
when freq_type = 1 then 'Once Only'
end as cycle,
t3.active_start_date as startDate,
t3.active_end_date as endDate
from msdb.dbo.sysjobs t1
inner join msdb.dbo.sysjobschedules t2
on t1.job_id = t2.job_id
inner join msdb.dbo.sysschedules t3
on t2.schedule_id = t3.schedule_id;
Output:
