SQL Server - SSRS - Где найти запрос, генерирующий отчет - PullRequest
16 голосов
/ 18 февраля 2011

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

1 Ответ

21 голосов
/ 18 февраля 2011

Это даст список отчетов с их определением отчета 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

...