我读到,来自SSRS的所有报表都存储在Reportserver数据库中的RDL (报表定义)中。
问题:如何在此数据库中看到为报表创建的所有参数?我想找到带有粒子参数的报告.
我已经检查了Reportserver数据库,但是没有找到任何带有粒子报告和使用的参数的表。
发布于 2022-03-14 14:28:06
参数列在Catalog表(ReportServer.dbo.Catalog)的ReportServer.dbo.Catalog列中。
参数以XML形式存储,因此不能直接读取它们。
下面的代码将返回带有参数名称、参数标签及其数据类型的报告。
SELECT
Cat.ItemID, cat.[Path], cat.Name
, p.*
FROM ReportServer.dbo.Catalog cat
JOIN (
SELECT ReportID = ItemID
,ParameterName = params.value('(Name/text())[1]', 'varchar(100)')
,Prompt = params.value('(Prompt/text())[1]', 'nvarchar(100)')
,DataType = params.value('(Type/text())[1]', 'varchar(100)')
FROM (
SELECT C.ItemID, C.Name,CONVERT(XML,C.Parameter) AS ParameterXML
FROM ReportServer.dbo.Catalog C
WHERE C.Content is not null
AND C.Type = 2
) a
cross apply ParameterXML.nodes('//Parameters/Parameter') q (params)
) p
on cat.ItemID = p.ReportIDhttps://stackoverflow.com/questions/71468560
复制相似问题