通过SQL Server Management Studio查询SSRS报表属性详情的方法
查询SSRS报表配置属性(含自定义代码)的SQL Server表说明
SSRS的所有报表配置信息都存在默认名为ReportServer的数据库里,核心关联表及查询方法如下:
核心表:Catalog
这是存储报表基础信息的主表,报表的RDL定义(包括自定义代码)就存在Content字段里(该字段是压缩后的varbinary类型)。
提取报表基本信息及RDL内容
SELECT ItemID, Name AS 报表名称, Path AS 报表路径, -- 解压Content字段获取完整RDL XML CONVERT(XML, DECOMPRESS(Content)) AS 报表RDL定义 FROM ReportServer.dbo.Catalog WHERE Type = 2 -- Type=2代表报表对象
直接提取自定义代码(Custom Code)
通过XQuery从RDL XML中定位<Code>节点,快速获取自定义代码:
SELECT Name AS 报表名称, Path AS 报表路径, -- 提取<Code>节点内的自定义代码 CONVERT(XML, DECOMPRESS(Content)).value('(/Report/Code)[1]', 'nvarchar(max)') AS 自定义代码 FROM ReportServer.dbo.Catalog WHERE Type = 2 -- 可选:只筛选包含自定义代码的报表 AND CONVERT(XML, DECOMPRESS(Content)).exist('/Report/Code') = 1
其他关联表
- Properties表:存储报表的扩展属性(比如报表描述、参数默认设置、执行超时等),通过
ItemID与Catalog表关联:
SELECT c.Name AS 报表名称, p.Name AS 属性名称, p.Value AS 属性值 FROM ReportServer.dbo.Catalog c JOIN ReportServer.dbo.Properties p ON c.ItemID = p.ItemID WHERE c.Type = 2
- DataSource表:存储报表绑定的数据源信息(含数据源连接字符串、凭据类型等),同样通过
ItemID关联Catalog:
SELECT c.Name AS 报表名称, ds.Name AS 数据源名称, ds.ConnectionString AS 连接字符串, ds.Extension AS 数据源类型 FROM ReportServer.dbo.Catalog c JOIN ReportServer.dbo.DataSource ds ON c.ItemID = ds.ItemID WHERE c.Type = 2
内容的提问来源于stack exchange,提问作者Elizabeth
相关产品推荐
相关产品推荐

