如何查询SSRS数据驱动订阅详情(含关联数据集SQL查询语句)
SSRS 数据驱动订阅数据集查询语句获取方案
这个需求完全可以实现,数据驱动订阅自身使用的数据集SQL存储在ReportServer库的专属表中,通过简单的表关联即可查询到结果。
核心关联逻辑
- 你已经在使用的
Subscriptions表存储了所有订阅的基础信息,唯一主键为SubscriptionID,其中DataDriven字段标记该订阅是否为数据驱动订阅 DataDrivenSubscription表专门存储数据驱动订阅的专属配置,通过SubscriptionID字段和Subscriptions表关联,你需要的数据集SQL查询语句存储在该表的DeliveryQuery字段中- 如需同步关联订阅对应的报表信息,可额外关联
Catalog表,通过Subscriptions表的Report_OID匹配Catalog表的ItemID字段即可
示例查询语句
SELECT s.SubscriptionID AS 订阅ID, c.Name AS 关联报表名称, s.Description AS 订阅描述, dds.DeliveryQuery AS 数据驱动订阅SQL语句, dds.ExtensionSettings AS 订阅投递配置 FROM Subscriptions s INNER JOIN DataDrivenSubscription dds ON s.SubscriptionID = dds.SubscriptionID LEFT JOIN Catalog c ON s.Report_OID = c.ItemID WHERE s.DataDriven = 1 -- 仅筛选数据驱动订阅
补充说明
如果你需要获取的是订阅所关联的报表本身的数据集查询语句,而非数据驱动订阅用来拉取参数、收件人列表的查询语句,则需要对Catalog表中存储报表rdl文件的Content二进制字段做解析,提取rdl XML结构中DataSet节点下的CommandText内容即可。
内容的提问来源于stack exchange,提问作者alex
相关产品推荐
相关产品推荐

