Sql 在SSRS中构建“宇宙”

Sql 在SSRS中构建“宇宙”,sql,reporting-services,ssrs-2012,Sql,Reporting Services,Ssrs 2012,我正试图建立一个“宇宙”,让我的同事和我都能看到以下几点: REPORTNAME - DATASET(S) - DATASOURCE 对于每个我想知道的细节: REPORTNAME - which parameters? what kind? caching enabled? DATASET - underlying Query, resulting Columns DATASOURCE - COnnectionstring 通过对Reportserver数据库的查询来获取报告列表 获取使用

我正试图建立一个“宇宙”,让我的同事和我都能看到以下几点:

REPORTNAME - DATASET(S) - DATASOURCE
对于每个我想知道的细节:

REPORTNAME - which parameters? what kind? caching enabled?
DATASET - underlying Query, resulting Columns
DATASOURCE - COnnectionstring
通过对Reportserver数据库的查询来获取报告列表

获取使用rs.exe针对webservice执行的datasources脚本的详细信息

但是我在哪里可以找到关于数据集的信息呢?我无法在reportserver数据库的表/视图中找到任何内容,也无法在Web服务文档中找到有关数据集的任何信息。谁能给我指出正确的方向

谢谢,
henro

您在报表服务器数据库中找不到任何有关数据集的信息,这一事实使我认为您正在查找有关报表本地数据集的信息。如果您处理的是共享数据集,那么当您查看

报表中的本地数据集详细信息包含在/report/DataSets/DataSet/Query下的报表定义RDL XML中

您可以从报表服务器数据库中查询本地数据集信息,使用XML数据类型的函数将每个数据集的详细信息透视到其自己的结果集行中:

SELECT ReportItemID = ItemID, DataSetName = QueryXml.value('@Name', 'NVARCHAR(256)'), DataSourceName = QueryXml.value('(*:Query/*:DataSourceName)[1]', 'NVARCHAR(260)'), CommandType = QueryXml.value('(*:Query/*:CommandType)[1]', 'NVARCHAR(15)'), CommandText = QueryXml.value('(*:Query/*:CommandText)[1]', 'NVARCHAR(MAX)') FROM ( SELECT *, ContentXml = (CONVERT(XML, CONVERT(VARBINARY(MAX), Content))) FROM Catalog WHERE Type = 2 ) AS Data CROSS APPLY ContentXml.nodes('/*:Report/*:DataSets/*:DataSet') QueryData(QueryXml)
当您使用它时,您可以从报表服务器数据库中查询您的报表,无需使用报表服务器web服务/rs.exe披露:链接到我博客上的一篇文章。

看起来很有前景。实际上,我说的是共享数据集。我可以在目录中找到它们,但我需要的是内容:字段名和commandtext。我找不到那是因为它们是加密的?。您的示例5看起来很有希望,但它没有给我任何关于SQL2008、2008R2、2012或2014的结果。抱歉,第二个链接已经包含了我需要的所有内容!本,你的第二个链接正是我需要的。不过有一个问题:它会返回数据集的commandtext,但有没有办法从该commandtext中检索字段?您可以通过在XML中的*:datasets下查找*:字段来获取字段。实际上我已经找到了答案。回答你的问题:是的,这就是我要找的。谢谢你的帮助!你让一些人非常高兴: