SQL Server - SSRS - где искать запрос, генерирующий отчет

Парень, который создал все отчеты с использованием SSRS, ушел, и я пытаюсь устранить один из создаваемых отчетов. Как получить доступ к запросу, который создает отчет.

Ответы

Ответ 1

Это даст список отчетов с их определением отчета xml:

SELECT Name,
CAST(CAST(Content AS VARBINARY(MAX)) AS XML) AS ReportXML
FROM ReportServer.dbo.Catalog
where Type = 2
order by Name

Информация, которую вы хотите, находится в разделе DataSets, например, ниже. В отчете может быть несколько запросов/хранимых процедур.

<DataSets>
    <DataSet Name="SalesSummary">
        <Query>
            <CommandType>StoredProcedure</CommandType>
            <CommandText>rptSalesSummary</CommandText>
            <QueryParameters>
                <QueryParameter Name="@STARTDATE">
                    <Value>=Parameters!STARTDATE.Value</Value>
                </QueryParameter>
                <QueryParameter Name="@ENDDATE">
                    <Value>=Parameters!ENDDATE.Value</Value>
                </QueryParameter>
            </QueryParameters>
            <DataSourceName>SampleDB</DataSourceName>
        </Query>
        .
        .
        .
   </DataSet>
    <DataSet Name="CompanyLocation">
        <Query>
            <DataSourceName>SampleDB</DataSourceName>
            <CommandText>
                SELECT CompanyLocationID AS ID, Name 
                                    FROM tblCompanyLocation
                WHERE WareHouseOnlyInd = 0
                ORDER BY Description
            </CommandText>
            <rd:UseGenericDesigner>true</rd:UseGenericDesigner>
        </Query>
    </DataSet>
    .
    .
    .

См. http://schemas.microsoft.com/sqlserver/reporting/2005/01/reportdefinition/ReportDefinition.xsd