【问题标题】:Kick off SSRS report by report name instead of GUID按报告名称而不是 GUID 启动 SSRS 报告
【发布时间】:2018-03-13 21:21:32
【问题描述】:

只是想知道是否可以通过报告名称而不是 guid 在存储过程中启动一系列不同的 SSRS 报告。

例如,在过程的主体内: exec {servername}.msdb.dbo.sp_start_job 'SSRS Report Name Here'

而不是: exec {servername}.msdb.dbo.sp_start_job 'F589B96A-EEFB-488D-9D1C-FE05C585598B'

【问题讨论】:

    标签: sql reporting-services


    【解决方案1】:

    是 这里是 sp_start_job 的参数:

    sp_start_job   
         {   [@job_name =] 'job_name'  
           | [@job_id =] job_id }  
         [ , [@error_flag =] error_flag]  
         [ , [@server_name =] 'server_name']  
         [ , [@step_name =] 'step_name']  
         [ , [@output_flag =] output_flag] 
    

    您必须提供@job_name 或@job_id。

    https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sp-start-job-transact-sql

    【讨论】:

      【解决方案2】:

      如果您有权访问 ReportServer 数据库,则可以根据报告名称找到作业名称(也是唯一标识符)。

      DECLARE @SubscriptionID SYSNAME
      
      SELECT @SubscriptionID = RS.ScheduleID
      FROM [ReportSchedule] RS
      INNER JOIN [Catalog] C ON RS.ReportID = C.ItemID
      WHERE C.[Name] = '<Report Name Here>'
      
      EXEC msdb.dbo.sp_start_job @SubscriptionID
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-04-24
        • 1970-01-01
        • 2012-04-03
        相关资源
        最近更新 更多