首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >正在传递给订阅服务器的SSRS报告的重复副本

正在传递给订阅服务器的SSRS报告的重复副本
EN

Stack Overflow用户
提问于 2019-08-22 20:53:28
回答 1查看 23关注 0票数 0

多个SSRS订阅服务器正在接收报告的重复副本

已确认没有多个订阅

不可用

我期望将SSRS报告的一份副本交付给订阅者

EN

回答 1

Stack Overflow用户

发布于 2019-08-23 16:50:27

您可以查询执行日志,以确定是否存在报告的任何隐藏执行。下面是我用来实现类似功能的脚本。

连接到报表服务器数据库或sharepoint集成版本。

代码语言:javascript
复制
WITH subscriptionXmL
AS 
(SELECT 
    SubscriptionID, OwnerID, Report_OID, Locale, InactiveFlags,
    ExtensionSettings, CONVERT(XML, ExtensionSettings) AS ExtensionSettingsXML,
    ModifiedByID, ModifiedDate, Description, LastStatus, EventType, MatchData,
    LastRunTime, Parameters, DeliveryExtension, Version
FROM dbo.Subscriptions
),
    -- Get the settings as pairs
SettingsCTE
AS 
(SELECT
    SubscriptionID ,
    ExtensionSettings ,
    -- include other fields if you need them.
    ISNULL(Settings.value('(./*:Name/text())[1]', 'nvarchar(1024)'), 'Value') AS SettingName,
    Settings.value('(./*:Value/text())[1]', 'nvarchar(max)') AS SettingValue, 
    Report_OID, LastRunTime, LastStatus, InactiveFlags
FROM
subscriptionXmL
CROSS APPLY subscriptionXmL.ExtensionSettingsXML.nodes('//*:ParameterValue') Queries ( Settings ))

select distinct 
ssrs.name,
ssrs.Path,
--convert(varchar(max),ReportQry) ReportQry,
[LastExec] [SQL Last Executed],
subs.SettingName,
subs.SettingValue [Recipients],
InactiveFlags
from
(SELECT top (100) percent Name,
CAST(CAST(Content AS VARBINARY(MAX)) AS XML) AS ReportQry,
ItemID [Report_ID],
Path
FROM dbo.Catalog c
) ssrs
    -- grab the last executed date
    left join  (select max(TimeStart) [LastExec], ReportID from ExecutionLog ex group by ReportID)ex
    on ssrs.[Report_ID] = ex.ReportID

    left join (
            SELECT *
            FROM
                (select dbo.Catalog.Name, SettingsCTE.SubscriptionID, SettingsCTE.SettingName, SettingValue, LastRunTime, LastStatus, Report_OID, InactiveFlags
                FROM
                SettingsCTE JOIN dbo.Catalog on SettingsCTE.Report_OID = dbo.Catalog.ItemID
                WHERE
                settingName IN ( 'TO', 'CC', 'BCC' )
                AND SettingValue IS NOT NULL
            ) subs
            )subs
        on ssrs.Report_ID = subs.Report_OID
 where 
 -- filter down to a report that references a particular object name
 (convert(varchar(max),ReportQry) LIKE '%you object / table / view%')
 -- or filter down to an individual report
 OR ssrs.name like '%your repot name%'
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57609827

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档