从SSRS报告中提取sql

时间:2014-04-30 08:22:56

标签: sql sql-server reporting-services

我试图从我的所有SSRS报告中提取sql,这样我就可以看到使用了哪些数据库表和columsn。如果您有50份报告,有谁知道如何做到这一点?是否有任何我忽略的现有功能?

1 个答案:

答案 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块,用于定义报告的一个数据集。首先,定义所有字段,然后定义查询及其参数。