2014-04-30 52 views
0

我想從我所有的SSRS報告中提取sql,所以我可以看到使用了哪些數據庫表和columsn。有沒有人知道如何做到這一點,如果你有50個報告?是否有任何我曾忽略的現有功能?從SSRS報告中提取sql

+0

如果您嘗試以編程方式提取所有查詢,答案是沒有任何這樣的功能。如果您的意思是在不打開Visual Studio的情況下從.rdl文件提取查詢,則可以使用文本編輯器打開所有文件。 – mordack550

+0

剛發現這個。 http://bretstateham.com/extracting-ssrs-content-using-the-ssis-%E2%80%9Cexport-column%E2%80%9D-component/ –

+0

所有SSRS報告是否在2008年和2012年ReportServer數據庫中列出? –

回答

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塊,它定義了報告中的一個數據集。首先,定義所有字段,然後使用其參數進行查詢。