如何查看 Reportserver 上的报表参数?

How can I see the Parameters of Reports on Reportserver?

我了解到所有来自 SSRS 的报告都作为 RDL(报告定义)存储在 Reportserver 数据库中。

问题:如何在该数据库中查看报表的所有创建参数?我想查找具有特定参数的报告。

我已经检查了 Reportserver 数据库,但我没有找到任何 table 具有特定报告和使用的参数。

参数列在 Catalog table 的 Parameter 列中 (ReportServer.dbo.Catalog)

参数存储为XML,因此您无法直接读取它们。

以下代码将 return 报告参数名称、参数标签及其数据类型。

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.ReportID