SQL Jobs Report






Hilighter On The Page








SQL Jobs Report

Code Below.


SELECT DISTINCT
[sJOB].[name] AS [JobName]
, [sDBP].[name] AS [JobOwner]

, CASE [sJOB].[enabled]
WHEN 1 THEN 'Yes'
WHEN 0 THEN 'No'
END AS [IsEnabled]
, CASE [sJHIS].run_status WHEN 0 THEN 'Failed'
WHEN 1 THEN 'Succeeded'
WHEN 2 THEN 'Retry'
WHEN 3 THEN 'Cancelled'
WHEN 4 THEN 'In Progress'
END AS [LastRunOutcome]
,COALESCE(SUBSTRING(CAST([sJHIS].run_date AS CHAR(8)), 1, 4) + '/'
+ SUBSTRING(CAST([sJHIS].run_date AS CHAR(8)), 5, 2) + '/'
+ SUBSTRING(CAST([sJHIS].run_date AS CHAR(8)), 7, 2), '') AS [LastRun]
,COALESCE(SUBSTRING(CAST([sJOBSCH].next_run_date AS CHAR(8)), 1, 4) + '/'
+ SUBSTRING(CAST([sJOBSCH].next_run_date AS CHAR(8)), 5, 2) + '/'
+ SUBSTRING(CAST([sJOBSCH].next_run_date AS CHAR(8)), 7, 2), '') AS [NextRun]
,STUFF(STUFF(STUFF(next_run_time, 1, 0, REPLICATE('0', 6 - LEN(next_run_time))),3,0,':'),6,0,':') AS [NextRunTime]
, [sSVR].[name] AS [OriginatingServerName]
, CASE
WHEN [sSCH].[schedule_uid] IS NULL THEN 'No'
ELSE 'Yes'
END AS [IsScheduled]


FROM
[msdb].[dbo].[sysjobs] AS [sJOB]
JOIN [msdb].[dbo].[sysjobhistory] AS [sJHIS]
ON [sJOB].[job_id] = [sJHIS].[job_id]

LEFT JOIN [msdb].[sys].[servers] AS [sSVR]
ON [sJOB].[originating_server_id] = [sSVR].[server_id]

LEFT JOIN [msdb].[sys].[database_principals] AS [sDBP]
ON [sJOB].[owner_sid] = [sDBP].[sid]
LEFT JOIN [msdb].[dbo].[sysjobschedules] AS [sJOBSCH]
ON [sJOB].[job_id] = [sJOBSCH].[job_id]
LEFT JOIN [msdb].[dbo].[sysschedules] AS [sSCH]
ON [sJOBSCH].[schedule_id] = [sSCH].[schedule_id]
WHERE ([sJOB].[name] LIKE 'NESI%' OR [sJOB].[name] LIKE 'NICE%' )
AND [sJHIS].run_date = (SELECT MAX(SJH1.run_date) FROM [msdb].[dbo].[sysjobhistory] SJH1 WHERE [sJHIS].job_id = SJH1.job_id)
--ORDER BY [JobName]

UNION
SELECT DISTINCT
[sJOB].[name] AS [JobName]
, [sDBP].[name] AS [JobOwner]

, CASE [sJOB].[enabled]
WHEN 1 THEN 'Yes'
WHEN 0 THEN 'No'
END AS [IsEnabled]
,'N\A' AS [LastRunOutcome]
,'N\A' AS [LastRun]
,CASE [sJOBSCH].next_run_date
WHEN '0' THEN 'N\A'
ELSE COALESCE(SUBSTRING(CAST([sJOBSCH].next_run_date AS CHAR(8)), 1, 4) + '/'
+ SUBSTRING(CAST([sJOBSCH].next_run_date AS CHAR(8)), 5, 2) + '/'
+ SUBSTRING(CAST([sJOBSCH].next_run_date AS CHAR(8)), 7, 2), '') END AS [NextRun]

,STUFF(STUFF(STUFF(next_run_time, 1, 0, REPLICATE('0', 6 - LEN(next_run_time))),3,0,':'),6,0,':') AS [NextRunTime]
, [sSVR].[name] AS [OriginatingServerName]
, CASE
WHEN [sSCH].[schedule_uid] IS NULL THEN 'No'
ELSE 'Yes'
END AS [IsScheduled]


FROM
[msdb].[dbo].[sysjobs] AS [sJOB]

LEFT JOIN [msdb].[sys].[servers] AS [sSVR]
ON [sJOB].[originating_server_id] = [sSVR].[server_id]

LEFT JOIN [msdb].[sys].[database_principals] AS [sDBP]
ON [sJOB].[owner_sid] = [sDBP].[sid]
LEFT JOIN [msdb].[dbo].[sysjobschedules] AS [sJOBSCH]
ON [sJOB].[job_id] = [sJOBSCH].[job_id]
LEFT JOIN [msdb].[dbo].[sysschedules] AS [sSCH]
ON [sJOBSCH].[schedule_id] = [sSCH].[schedule_id]
WHERE ([sJOB].[name] LIKE 'NESI%' OR [sJOB].[name] LIKE 'NICE%' )
AND [sJOB].[name] NOT IN (SELECT
[sJOB].[name] AS [JobName]
FROM
[msdb].[dbo].[sysjobs] AS [sJOB]
JOIN [msdb].[dbo].[sysjobhistory] AS [sJHIS]
ON [sJOB].[job_id] = [sJHIS].[job_id])









Comments

Popular posts from this blog

Index Clean-Up Scripts

forgot sa password and no logins are added

The SQL Server DBA’s Guide to Teradata