1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
| USE [master]
GO
/****** Object: StoredProcedure [dbo].[sp_MonitorJobs] Script Date: 10/25/2017 16:43:11 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: CHARPENTIER Thierry
-- Create date: 24.10.2017
-- Description:
-- =============================================
CREATE PROCEDURE [dbo].[sp_MonitorJobs]
AS
BEGIN
SET NOCOUNT ON
DECLARE @SQL NVARCHAR(4000)
-- Obtenir des informations depuis sp_help_job
SET @SQL='SELECT CONVERT(VARCHAR(20),SERVERPROPERTY(''ServerName'')) AS ServerName
,j.name AS job_name
,CASE j.enabled
WHEN 1 THEN ''Enabled''
ELSE ''Disabled''
END AS job_status
,CASE jh.run_status
WHEN 0 THEN ''Failed''
WHEN 1 THEN ''Succeeded''
WHEN 2 THEN ''Retry''
WHEN 3 THEN ''Cancelled''
WHEN 4 THEN ''In Progress''
ELSE ''Unknown''
END AS last_run_status
,ja.run_requested_date AS last_run_date
,CONVERT(VARCHAR(10),CONVERT(DATETIME,RTRIM(19000101))
+ (jh.run_duration * 9
+ jh.run_duration % 10000 * 6
+ jh.run_duration % 100 * 10) / 216e4,108) AS run_duration
,ja.run_requested_date AS last_run_date
,CONVERT(VARCHAR(500), jh.message) AS step_description
FROM (msdb.dbo.sysjobactivity AS ja
LEFT JOIN msdb.dbo.sysjobhistory AS jh ON ja.job_history_id = jh.instance_id)
JOIN msdb.dbo.sysjobs_view AS j ON ja.job_id = j.job_id
WHERE ja.session_id=(SELECT MAX(session_id) FROM msdb.dbo.sysjobactivity)
AND j.enabled = 1
ORDER BY job_name,job_status'
EXECUTE sp_executesql @SQL
END
GO |
Partager