我试图从我的所有SSRS报告中提取sql,这样我就可以看到使用了哪些数据库表和columsn。如果您有50份报告,有谁知道如何做到这一点?是否有任何我忽略的现有功能?
答案 0 :(得分:2)
RDL文件是简单的XML文件。您可以创建一个简单的解析器来提取所需的信息。如果您现在无法访问RDL文件,可以通过SSRS Web界面下载它们。
这里是RDL文件相关部分的摘录:
<DataSets>
<DataSet Name="Test">
<Fields>
<Field Name="Testfield">
<DataField>Testfield</DataField>
<rd:TypeName>System.DateTime</rd:TypeName>
</Field>
</Fields>
<Query>
<DataSourceName>MyDataSource</DataSourceName>
<CommandType>StoredProcedure</CommandType>
<CommandText>spMyGreatStoredProcedure</CommandText>
<QueryParameters>
<QueryParameter Name="@param1">
<Value>=Parameters!Param1.Value</Value>
</QueryParameter>
<QueryParameter Name="@param2">
<Value>=Parameters!Param2.Value</Value>
</QueryParameter>
<rd:UseGenericDesigner>true</rd:UseGenericDesigner>
</Query>
</DataSet>
</DataSets>
有一个或多个DataSet
块,用于定义报告的一个数据集。首先,定义所有字段,然后定义查询及其参数。