1 DECLARE @WeekDays TABLE
  2 (
  3     freq_interval    INT,
  4     weekdays        NVARCHAR(120)
  5  
  6 )
  7  
  8 INSERT INTO @WeekDays
  9 SELECT 1    ,N'星期日               '  UNION ALL
 10 SELECT 2    ,N'星期一               '  UNION ALL
 11 SELECT 4    ,N'星期二               '  UNION ALL
 12 SELECT 8    ,N'星期三               '  UNION ALL
 13 SELECT 16   ,N'星期四               '  UNION ALL
 14 SELECT 32   ,N'星期五               '  UNION ALL
 15 SELECT 64   ,N'星期六               '  UNION ALL
 16 SELECT 3    ,N'星期日,一            '  UNION ALL
 17 SELECT 5    ,N'星期日,二            '  UNION ALL
 18 SELECT 9    ,N'星期日,三            '  UNION ALL
 19 SELECT 17   ,N'星期日,四            '  UNION ALL
 20 SELECT 33   ,N'星期日,五            '  UNION ALL
 21 SELECT 65   ,N'星期日,六            '  UNION ALL
 22 SELECT 6    ,N'星期一,二            '  UNION ALL
 23 SELECT 10   ,N'星期一,三            '  UNION ALL
 24 SELECT 18   ,N'星期一,四            '  UNION ALL
 25 SELECT 34   ,N'星期一,五            '  UNION ALL
 26 SELECT 66   ,N'星期一,六            '  UNION ALL
 27 SELECT 12   ,N'星期二,三            '  UNION ALL
 28 SELECT 20   ,N'星期二,四            '  UNION ALL
 29 SELECT 36   ,N'星期二,五            '  UNION ALL
 30 SELECT 68   ,N'星期二,六            '  UNION ALL
 31 SELECT 24   ,N'星期三,四            '  UNION ALL
 32 SELECT 40   ,N'星期三,五            '  UNION ALL
 33 SELECT 72   ,N'星期三,六            '  UNION ALL
 34 SELECT 48   ,N'星期四,五            '  UNION ALL
 35 SELECT 80   ,N'星期四,六            '  UNION ALL
 36 SELECT 96   ,N'星期五,六            '  UNION ALL
 37 SELECT 7    ,N'星期日,一,二         '  UNION ALL
 38 SELECT 11   ,N'星期日,一,三         '  UNION ALL
 39 SELECT 19   ,N'星期日,一,四         '  UNION ALL
 40 SELECT 35   ,N'星期日,一,五         '  UNION ALL
 41 SELECT 67   ,N'星期日,一,六         '  UNION ALL
 42 SELECT 13   ,N'星期日,二,三         '  UNION ALL
 43 SELECT 21   ,N'星期日,二,四         '  UNION ALL
 44 SELECT 37   ,N'星期日,二,五         '  UNION ALL
 45 SELECT 69   ,N'星期日,二,六         '  UNION ALL
 46 SELECT 25   ,N'星期日,三,四         '  UNION ALL
 47 SELECT 41   ,N'星期日,三,五         '  UNION ALL
 48 SELECT 73   ,N'星期日,三,六         '  UNION ALL
 49 SELECT 49   ,N'星期日,四,五         '  UNION ALL
 50 SELECT 81   ,N'星期日,四,六         '  UNION ALL
 51 SELECT 97   ,N'星期日,五,六         '  UNION ALL
 52 SELECT 14   ,N'星期一,二,三         '  UNION ALL
 53 SELECT 22   ,N'星期一,二,四         '  UNION ALL
 54 SELECT 38   ,N'星期一,二,五         '  UNION ALL
 55 SELECT 70   ,N'星期一,二,六         '  UNION ALL
 56 SELECT 26   ,N'星期一,三,四         '  UNION ALL
 57 SELECT 42   ,N'星期一,三,五         '  UNION ALL
 58 SELECT 74   ,N'星期一,三,六         '  UNION ALL
 59 SELECT 50   ,N'星期一,四,五         '  UNION ALL
 60 SELECT 82   ,N'星期一,四,六         '  UNION ALL
 61 SELECT 98   ,N'星期一,五,六         '  UNION ALL
 62 SELECT 28   ,N'星期二,三,四         '  UNION ALL
 63 SELECT 44   ,N'星期二,三,五         '  UNION ALL
 64 SELECT 76   ,N'星期二,三,六         '  UNION ALL
 65 SELECT 52   ,N'星期二,四,五         '  UNION ALL
 66 SELECT 84   ,N'星期二,四,六         '  UNION ALL
 67 SELECT 100  ,N'星期二,五,六         '  UNION ALL
 68 SELECT 56   ,N'星期三,四,五         '  UNION ALL
 69 SELECT 88   ,N'星期三,四,六         '  UNION ALL
 70 SELECT 104  ,N'星期三,五,六         '  UNION ALL
 71 SELECT 112  ,N'星期四,五,六         '  UNION ALL
 72 SELECT 15   ,N'星期日,一,二,三      '  UNION ALL
 73 SELECT 23   ,N'星期日,一,二,四      '  UNION ALL
 74 SELECT 39   ,N'星期日,一,二,五      '  UNION ALL
 75 SELECT 71   ,N'星期日,一,二,六      '  UNION ALL
 76 SELECT 27   ,N'星期日,一,三,四      '  UNION ALL
 77 SELECT 43   ,N'星期日,一,三,五      '  UNION ALL
 78 SELECT 75   ,N'星期日,一,三,六      '  UNION ALL
 79 SELECT 51   ,N'星期日,一,四,五      '  UNION ALL
 80 SELECT 83   ,N'星期日,一,四,六      '  UNION ALL
 81 SELECT 99   ,N'星期日,一,五,六      '  UNION ALL
 82 SELECT 29   ,N'星期日,二,三,四      '  UNION ALL
 83 SELECT 45   ,N'星期日,二,三,五      '  UNION ALL
 84 SELECT 77   ,N'星期日,二,三,六      '  UNION ALL
 85 SELECT 53   ,N'星期日,二,四,五      '  UNION ALL
 86 SELECT 85   ,N'星期日,二,四,六      '  UNION ALL
 87 SELECT 101  ,N'星期日,二,五,六      '  UNION ALL
 88 SELECT 57   ,N'星期日,三,四,五      '  UNION ALL
 89 SELECT 89   ,N'星期日,三,四,六      '  UNION ALL
 90 SELECT 105  ,N'星期日,三,五,六      '  UNION ALL
 91 SELECT 113  ,N'星期日,四,五,六      '  UNION ALL
 92 SELECT 30   ,N'星期一,二,三,四      '  UNION ALL
 93 SELECT 46   ,N'星期一,二,三,五      '  UNION ALL
 94 SELECT 78   ,N'星期一,二,三,六      '  UNION ALL
 95 SELECT 54   ,N'星期一,二,四,五      '  UNION ALL
 96 SELECT 86   ,N'星期一,二,四,六      '  UNION ALL
 97 SELECT 102  ,N'星期一,二,五,六      '  UNION ALL
 98 SELECT 58   ,N'星期一,三,四,五      '  UNION ALL
 99 SELECT 90   ,N'星期一,三,四,六      '  UNION ALL
100 SELECT 106  ,N'星期一,三,五,六      '  UNION ALL
101 SELECT 114  ,N'星期一,四,五,六      '  UNION ALL
102 SELECT 60   ,N'星期二,三,四,五      '  UNION ALL
103 SELECT 92   ,N'星期二,三,四,六      '  UNION ALL
104 SELECT 108  ,N'星期二,三,五,六      '  UNION ALL
105 SELECT 116  ,N'星期二,四,五,六      '  UNION ALL
106 SELECT 120  ,N'星期三,四,五,六      '  UNION ALL
107 SELECT 31   ,N'星期日,一,二,三,四   '  UNION ALL
108 SELECT 47   ,N'星期日,一,二,三,五   '  UNION ALL
109 SELECT 79   ,N'星期日,一,二,三,六   '  UNION ALL
110 SELECT 55   ,N'星期日,一,二,四,五   '  UNION ALL
111 SELECT 87   ,N'星期日,一,二,四,六   '  UNION ALL
112 SELECT 103  ,N'星期日,一,二,五,六   '  UNION ALL
113 SELECT 59   ,N'星期日,一,三,四,五   '  UNION ALL
114 SELECT 91   ,N'星期日,一,三,四,六   '  UNION ALL
115 SELECT 107  ,N'星期日,一,三,五,六   '  UNION ALL
116 SELECT 115  ,N'星期日,一,四,五,六   '  UNION ALL
117 SELECT 61   ,N'星期日,二,三,四,五   '  UNION ALL
118 SELECT 93   ,N'星期日,二,三,四,六   '  UNION ALL
119 SELECT 109  ,N'星期日,二,三,五,六   '  UNION ALL
120 SELECT 117  ,N'星期日,二,四,五,六   '  UNION ALL
121 SELECT 121  ,N'星期日,三,四,五,六   '  UNION ALL
122 SELECT 62   ,N'星期一,二,三,四,五   '  UNION ALL
123 SELECT 94   ,N'星期一,二,三,四,六   '  UNION ALL
124 SELECT 110  ,N'星期一,二,三,五,六   '  UNION ALL
125 SELECT 118  ,N'星期一,二,四,五,六   '  UNION ALL
126 SELECT 122  ,N'星期一,三,四,五,六   '  UNION ALL
127 SELECT 124  ,N'星期二,三,四,五,六   '  UNION ALL
128 SELECT 63   ,N'星期日,一,二,三,四,五'  UNION ALL
129 SELECT 95   ,N'星期日,一,二,三,四,六'  UNION ALL
130 SELECT 111  ,N'星期日,一,二,三,五,六'  UNION ALL
131 SELECT 119  ,N'星期日,一,二,四,五,六'  UNION ALL
132 SELECT 123  ,N'星期日,一,三,四,五,六'  UNION ALL
133 SELECT 125  ,N'星期日,二,三,四,五,六'  UNION ALL
134 SELECT 126  ,N'星期一,二,三,四,五,六'  UNION ALL
135 SELECT 127  ,N'星期日,一,二,三,四,五,六';      
136 
137 --SELECT * FROM msdb.dbo.sysjobsteps --作业对应步骤明细
138 
139 --select  * from @WeekDays
140 
141 SELECT  d.job_id                                    AS job_id    ,
142         j.name                                        AS job_name ,
143         j.[description] AS '作业描述',
144         [jstep].[database_name] AS '执行数据库名'
145    ,[jstep].[command] AS '执行命令',
146         CASE WHEN j.enabled =1  THEN N'启用' 
147              ELSE N'禁用' END                        AS job_staus,
148         CASE WHEN freq_type=1    THEN N'运行一次'
149              WHEN freq_type=4    THEN N'每天执行'
150              WHEN freq_type=8    THEN N'每周执行'
151              WHEN freq_type=16    THEN N'每月执行'
152              WHEN freq_type=32    THEN N'每月执行'
153              WHEN freq_type=64    THEN N'代理服务启动时运行'
154              WHEN freq_type=128 THEN N'在计算机空闲时运行'
155         END                                            AS  freq_type,
156         CASE WHEN freq_type=1    THEN  N'选项无意义'
157              WHEN freq_type=4    THEN 
158                 (
159                  CASE WHEN freq_subday_type=4     
160                       THEN  N'每隔' +  CONVERT(NVARCHAR(4),freq_subday_interval) +N'分钟执行一次' 
161                  WHEN freq_subday_type=8 
162                       THEN  N'每隔' +  CONVERT(NVARCHAR(4),freq_subday_interval) +N'小时执行一次'
163                  ELSE         N'每天执行'+ CONVERT(NVARCHAR(4),freq_interval)  + N'' 
164                  END
165                  )
166              WHEN freq_type=8    THEN 
167                 ( SELECT w.weekdays FROM   @WeekDays w WHERE w.freq_interval= s.freq_interval
168                  )
169                                     
170              WHEN freq_type=16  THEN  N'每月' +  CONVERT(NVARCHAR(4),freq_interval)     + N'号执行'
171              WHEN freq_type=32  THEN  N'每月星期' + CONVERT(NVARCHAR(4),freq_interval)  + N'执行'
172         END AS freq_relative_interval,
173         CASE WHEN freq_subday_type =1 THEN N'指定时间点执行一次' 
174              WHEN freq_subday_type =2 THEN N'每隔:' + CAST(freq_subday_interval AS VARCHAR(2)) + N'秒执行一次'
175              WHEN freq_subday_type =4 THEN N'每隔:' + CAST(freq_subday_interval AS VARCHAR(2)) + N'分执行一次'
176              WHEN freq_subday_type =8 THEN N'每隔:' + CAST(freq_subday_interval AS VARCHAR(2)) + N'小时执行一次'
177         END AS freq_subday_type, 
178         CASE WHEN freq_subday_type =1 THEN N'开始时间点:' 
179                     + CAST(active_start_time / 10000   AS VARCHAR(2)) + N''
180                     + CAST(active_start_time%10000/100 AS VARCHAR(2)) + N''
181              WHEN freq_subday_type =2 THEN N'开始时间点:' 
182                     + CAST(active_start_time / 10000 AS VARCHAR(2)) + N''
183                     + CAST(active_start_time%10000/100 AS VARCHAR(2)) + N''
184              WHEN freq_subday_type =4 THEN N'开始时间点:' 
185                     + CAST(active_start_time / 10000 AS VARCHAR(2))   + N''
186                     + CAST(active_start_time%10000/100 AS VARCHAR(2)) + N''
187              WHEN freq_subday_type =8 THEN N'开始时间点:'
188                     + CAST(active_start_time / 10000 AS VARCHAR(2))   + N''
189                     + CAST(active_start_time%10000/100 AS VARCHAR(2)) + N''
190         END AS job_start_time, 
191         CASE WHEN freq_subday_type =1 THEN N'结束时间点:' 
192                     + CAST(active_end_time / 10000   AS VARCHAR(2)) + N''
193                     + CAST(active_end_time%10000/100 AS VARCHAR(2)) + N''
194              WHEN freq_subday_type =2 THEN N'结束时间点:' 
195                     + CAST(active_end_time / 10000 AS VARCHAR(2)) + N''
196                     + CAST(active_end_time%10000/100 AS VARCHAR(2)) + N''
197              WHEN freq_subday_type =4 THEN N'结束时间点:' 
198                     + CAST(active_end_time / 10000 AS VARCHAR(2))   + N''
199                     + CAST(active_end_time%10000/100 AS VARCHAR(2)) + N''
200              WHEN freq_subday_type =8 THEN N'结束时间点:'
201                     + CAST(active_end_time / 10000 AS VARCHAR(2))   + N''
202                     + CAST(active_end_time%10000/100 AS VARCHAR(2)) + N''
203         END AS job_end_time, 
204         freq_type,
205         freq_interval,     
206         freq_subday_type,
207         freq_subday_interval,
208         active_start_date,
209         active_start_time
210         ,
211          j.[date_created] AS '作业创建日期'
212    ,j.[date_modified] AS '作业最后修改日期'
213     ,[jstep].[step_id] AS '作业起始步骤'
214    ,[jstep].[step_name] AS '步骤名称'
215 FROM msdb.dbo.sysschedules s
216 INNER JOIN msdb.dbo.sysjobschedules d ON s.schedule_id=d.schedule_id
217 INNER JOIN msdb.dbo.sysjobs j ON d.job_id = j.job_id
218 inner join [msdb].[dbo].[sysjobsteps] AS [jstep]  on  d.job_id=jstep.job_id
219 ORDER BY j.name
View Code

 

 posted on 2021-08-20 12:35  代码改变世界&1024  阅读(129)  评论(0编辑  收藏  举报