【问题标题】:How can I query all the 'RUNNING' JOBS on SQL-Server with their details?如何查询 SQL-Server 上所有“正在运行”的作业及其详细信息?
【发布时间】:2014-03-21 09:39:35
【问题描述】:

如何通过 T-SQL 脚本查询 SQL-Server 上所有“RUNNING”(已启用)JOBS 及其详细信息(尤其是开始时间、频率)?

谢谢!

【问题讨论】:

    标签: sql-server tsql sql-agent-job


    【解决方案1】:
    use msdb
    select distinct a.name JOBNAME, isnull(DESCRIPTION,'No description available') DESCRIPTION,c.Name Category, 
    isnull (b.database_name,'None') DATABASE_NAME, isnull(f.name, 'None') Job_Owner,
    case when d.name is null then 'No Schedule' else d.name end Schedule,
    isnull (case d.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' end, 'None') as Frequency,
    isnull (case d.freq_interval
    when '1' then 'None'
    when '2' then 'Monday'
    when '4' then 'Tuesday'
    when '8' then 'Wednesday'
    when '16' then 'Thursday'
    when '32' then 'Friday'
    when '64' then 'Saturday'
    end,'None') as DAY,
    case when active_start_time < 120000 then
    isnull(left(convert(varchar,convert(decimal,D.Active_start_time)/10000),4) + ' AM','None') else
    isnull(left(convert(varchar,convert(decimal,D.Active_start_time)/10000-12),4) + ' PM','None') END
    JOB_start_time,
    isnull (convert (varchar,d.Date_Created), 'None') Created_Date 
    from sysjobs a
    Inner join sysjobsteps b on
    a.job_id = b.job_id
    left outer join syscategories c on a.category_id = c.category_id
    left outer join master.dbo.syslogins f on a.Owner_sid = f.sid
    left outer join sysjobschedules e on e.job_id = a.job_id
    left outer join sysschedules d on e.schedule_id = d.schedule_id
    where a.enabled = 1
    order by a.name
    

    【讨论】:

      【解决方案2】:

      在您的 sql-server 上运行此查询

         SELECT *
         FROM msdb.dbo.sysjobsteps AS JobStep
              INNER JOIN msdb.dbo.sysjobs AS Job ON JobStep.job_id = Job.job_id
         WHERE enabled=1
      

      【讨论】:

      • 您是否有理由从 sysjobsteps 而不是 sysjobs 开始? (刚刚注意到 KuldipMCA 的查询从 Sysjobs 开始)
      • @pencilCake:据我所知没关系 :)
      • @pencilCake:你得到了预期的结果吗?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-02-22
      • 1970-01-01
      • 1970-01-01
      • 2012-06-23
      • 2013-11-11
      • 1970-01-01
      • 2015-08-13
      相关资源
      最近更新 更多