【问题标题】:How can i link a sql server job name如何链接 sql server 作业名称
【发布时间】:2009-09-01 14:13:14
【问题描述】:

到使用它的 SSRS 报表服务器进程?该名称看起来像一个 guid,但我需要找到使用它的报告服务报告。 非常感谢

【问题讨论】:

    标签: sql-server reporting-services


    【解决方案1】:

    这是不久前的query I blogged about,用于连接:

    ;WITH cte (job_id, job_name, execution_time, execution_order) 
    AS 
    ( 
    SELECT DISTINCT j.job_id 
        ,j.name 
        ,CONVERT(datetime, STUFF(STUFF(run_date,7,0,'/'),5,0,'/') 
            + SPACE(1) 
            + STUFF(STUFF(RIGHT('000000' + CONVERT(varchar(20), run_time), 6),5,0,':'),3,0,':'))
        ,ROW_NUMBER() OVER (PARTITION BY j.job_id ORDER BY CONVERT(datetime, STUFF(STUFF(run_date,7,0,'/'),5,0,'/') 
            + SPACE(1) 
            + STUFF(STUFF(RIGHT('000000' + CONVERT(varchar(20), run_time), 6),5,0,':'),3,0,':')) DESC)
    FROM msdb.dbo.sysjobs j  
        INNER JOIN msdb.dbo.syscategories c ON j.category_id = c.category_id
        LEFT OUTER JOIN msdb.dbo.sysjobhistory jh ON j.job_id = jh.job_id 
    WHERE c.name ='Report Server'
    ) 
    SELECT 
        x.job_name 
        ,c.name 
        ,x.execution_time
        ,c.path 
        ,su.description 
        ,CONVERT(varchar(max), su.ExtensionSettings) as ExtensionSettings 
        ,'EXEC msdb..sp_start_job ''' + x.job_name + '''' as SQLStatement
    FROM cte x 
        INNER JOIN dbo.Schedule sc ON x.job_name = CONVERT(varchar(100), sc.ScheduleID) 
        INNER JOIN dbo.ReportSchedule rs ON sc.ScheduleID = rs.ScheduleID 
        INNER JOIN dbo.Subscriptions su ON rs.SubscriptionID = su.SubscriptionID 
        INNER JOIN dbo.Catalog c ON su.Report_OID = c.ItemID 
    WHERE execution_order = 1
    ORDER BY 3, 2
    

    【讨论】:

    • 太棒了...非常感谢,为我们解决了一个非常难以解决的问题。画了
    【解决方案2】:

    似乎没有一种直接的方法可以找出答案。

    以下查询列出了订阅 ID 和它们链接到的报告

    select s.SubscriptionID, c.Path
    from ReportServer.dbo.Subscriptions as s
    JOIN ReportServer.dbo.Catalog       as c
    on   ItemID = Report_OID
    

    然后在作业步骤中引用订阅 ID,格式如下。

    exec ReportServer.dbo.AddEvent @EventType='TimedSubscription', @EventData='~subscriptionID~'
    

    应该可以编写一个查询将它们连接在一起,但我现在没有时间。我稍后会尝试更新问题。

    【讨论】:

      猜你喜欢
      • 2017-09-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-05
      • 1970-01-01
      • 1970-01-01
      • 2011-02-02
      • 2023-03-18
      相关资源
      最近更新 更多