zoukankan      html  css  js  c++  java
  • 【SQL Server 学习系列】-- 查询SQL实例的所有Job

    SELECT     [JobName] = [jobs].[name]
            ,[JobOwner] = SUSER_SNAME(jobs.owner_sid)
            ,[Enabled] = CASE [jobs].[enabled] WHEN 1 THEN 'Yes' ELSE 'No' END
            ,[Scheduled] = CASE [schedule].[enabled] WHEN 1 THEN 'Yes' ELSE 'No' END
            ,[Occurs] = 
                    CASE [schedule].[freq_type]
                        WHEN   1 THEN 'Once'
                        WHEN   4 THEN 'Daily'
                        WHEN   8 THEN 'Weekly'
                        WHEN  16 THEN 'Monthly'
                        WHEN  32 THEN 'Monthly relative'
                        WHEN  64 THEN 'When SQL Server Agent starts'
                        WHEN 128 THEN 'Start whenever the CPU(s) become idle' 
                        ELSE ''
                    END
            ,[Occurs_detail] = 
                    CASE [schedule].[freq_type]
                        WHEN   1 THEN 'O'
                        WHEN   4 THEN 'Every ' + CONVERT(NVARCHAR(2000), [schedule].[freq_interval]) + ' day(s)'
                        WHEN   8 THEN 'Every ' + CONVERT(NVARCHAR(2000), [schedule].[freq_recurrence_factor]) + ' weeks(s) on ' + 
                            LEFT(
                                CASE WHEN [schedule].[freq_interval] &  1 =  1 THEN 'Sunday, '    ELSE '' END + 
                                CASE WHEN [schedule].[freq_interval] &  2 =  2 THEN 'Monday, '    ELSE '' END + 
                                CASE WHEN [schedule].[freq_interval] &  4 =  4 THEN 'Tuesday, '   ELSE '' END + 
                                CASE WHEN [schedule].[freq_interval] &  8 =  8 THEN 'Wednesday, ' ELSE '' END + 
                                CASE WHEN [schedule].[freq_interval] & 16 = 16 THEN 'Thursday, '  ELSE '' END + 
                                CASE WHEN [schedule].[freq_interval] & 32 = 32 THEN 'Friday, '    ELSE '' END + 
                                CASE WHEN [schedule].[freq_interval] & 64 = 64 THEN 'Saturday, '  ELSE '' END , 
                                LEN(
                                    CASE WHEN [schedule].[freq_interval] &  1 =  1 THEN 'Sunday, '    ELSE '' END + 
                                    CASE WHEN [schedule].[freq_interval] &  2 =  2 THEN 'Monday, '    ELSE '' END + 
                                    CASE WHEN [schedule].[freq_interval] &  4 =  4 THEN 'Tuesday, '   ELSE '' END + 
                                    CASE WHEN [schedule].[freq_interval] &  8 =  8 THEN 'Wednesday, ' ELSE '' END + 
                                    CASE WHEN [schedule].[freq_interval] & 16 = 16 THEN 'Thursday, '  ELSE '' END + 
                                    CASE WHEN [schedule].[freq_interval] & 32 = 32 THEN 'Friday, '    ELSE '' END + 
                                    CASE WHEN [schedule].[freq_interval] & 64 = 64 THEN 'Saturday, '  ELSE '' END 
                                ) - 1
                            )
                        WHEN  16 THEN 'Day ' + CONVERT(NVARCHAR(2000), [schedule].[freq_interval]) + ' of every ' + CONVERT(VARCHAR, [schedule].[freq_recurrence_factor]) + ' month(s)'
                        WHEN  32 THEN 'The ' + 
                                CASE [schedule].[freq_relative_interval]
                                    WHEN  1 THEN 'First'
                                    WHEN  2 THEN 'Second'
                                    WHEN  4 THEN 'Third'
                                    WHEN  8 THEN 'Fourth'
                                    WHEN 16 THEN 'Last' 
                                END +
                                CASE [schedule].[freq_interval]
                                    WHEN  1 THEN ' Sunday'
                                    WHEN  2 THEN ' Monday'
                                    WHEN  3 THEN ' Tuesday'
                                    WHEN  4 THEN ' Wednesday'
                                    WHEN  5 THEN ' Thursday'
                                    WHEN  6 THEN ' Friday'
                                    WHEN  7 THEN ' Saturday'
                                    WHEN  8 THEN ' Day'
                                    WHEN  9 THEN ' Weekday'
                                    WHEN 10 THEN ' Weekend Day' 
                                END + ' of every ' + CONVERT(NVARCHAR(2000), [schedule].[freq_recurrence_factor]) + ' month(s)' 
                        ELSE ''
                    END
            ,[Frequency] = 
                    CASE [schedule].[freq_subday_type]
                        WHEN 1 THEN 'Occurs once at ' + 
                                    STUFF(STUFF(RIGHT('000000' + CONVERT(VARCHAR(8), [schedule].[active_start_time]), 6), 5, 0, ':'), 3, 0, ':')
                        WHEN 2 THEN 'Occurs every ' + 
                                    CONVERT(NVARCHAR(2000), [schedule].[freq_subday_interval]) + ' Seconds(s) between ' + 
                                    STUFF(STUFF(RIGHT('000000' + CONVERT(VARCHAR(8), [schedule].[active_start_time]), 6), 5, 0, ':'), 3, 0, ':') + ' and ' + 
                                    STUFF(STUFF(RIGHT('000000' + CONVERT(VARCHAR(8), [schedule].[active_end_time]), 6), 5, 0, ':'), 3, 0, ':')
                        WHEN 4 THEN 'Occurs every ' + 
                                    CONVERT(NVARCHAR(2000), [schedule].[freq_subday_interval]) + ' Minute(s) between ' + 
                                    STUFF(STUFF(RIGHT('000000' + CONVERT(VARCHAR(8), [schedule].[active_start_time]), 6), 5, 0, ':'), 3, 0, ':') + ' and ' + 
                                    STUFF(STUFF(RIGHT('000000' + CONVERT(VARCHAR(8), [schedule].[active_end_time]), 6), 5, 0, ':'), 3, 0, ':')
                        WHEN 8 THEN 'Occurs every ' + 
                                    CONVERT(NVARCHAR(2000), [schedule].[freq_subday_interval]) + ' Hour(s) between ' + 
                                    STUFF(STUFF(RIGHT('000000' + CONVERT(VARCHAR(8), [schedule].[active_start_time]), 6), 5, 0, ':'), 3, 0, ':') + ' and ' + 
                                    STUFF(STUFF(RIGHT('000000' + CONVERT(VARCHAR(8), [schedule].[active_end_time]), 6), 5, 0, ':'), 3, 0, ':')
                        ELSE ''
                    END
            , [Max Duration] = STUFF(STUFF(REPLACE(STR(maxdur.run_duration, 6, 0), ' ', '0'), 3, 0, ':'), 6, 0, ':')
            , [Last Run Duration] = STUFF(STUFF(REPLACE(STR(lastrun.run_duration, 6, 0), ' ', '0'), 3, 0, ':'), 6, 0, ':')
    FROM     [msdb].[dbo].[sysjobs] AS [jobs] WITh(NOLOCK) 
             LEFT OUTER JOIN [msdb].[dbo].[sysjobschedules] AS [jobschedule] WITh(NOLOCK) 
                     ON [jobs].[job_id] = [jobschedule].[job_id] 
             LEFT OUTER JOIN [msdb].[dbo].[sysschedules] AS [schedule] WITh(NOLOCK) 
                     ON [jobschedule].[schedule_id] = [schedule].[schedule_id] 
            LEFT OUTER JOIN
        (
            SELECT job_id,
                   MAX(run_duration) AS run_duration
            FROM msdb.dbo.sysjobhistory WITH (NOLOCK)
            GROUP BY job_id
        ) maxdur
            ON jobs.job_id = maxdur.job_id
        LEFT OUTER JOIN
        (
            SELECT j1.job_id,
                   j1.run_duration,
                   j1.run_date,
                   j1.run_time,
                   j1.message
            FROM msdb.dbo.sysjobhistory j1 WITH (NOLOCK)
            WHERE instance_id =
            (
                SELECT MAX(instance_id)
                FROM msdb.dbo.sysjobhistory j2 WITH (NOLOCK)
                WHERE j2.job_id = j1.job_id
            )
        ) lastrun
            ON jobs.job_id = lastrun.job_id
    GO
  • 相关阅读:
    PHP Socket服务器搭建和测试
    Linux socket编程示例
    深入浅出讲解:php的socket通信
    Linux系统下/tmp目录文件重启后自动删除
    斐讯K2路由器刷不死固件+openwrt
    php ddos 安全处理代码
    windows通过ftp下载linux文件
    win7 重启dns
    hostname -f 失败解决办法
    ERROR 2003 (HY000): Can't connect to MySQL server on "" (113)
  • 原文地址:https://www.cnblogs.com/elliot-lei/p/15180898.html
Copyright © 2011-2022 走看看