2015-02-09 20 views
0

我正在開發一個顯示一些SSRS報告的ASP.NET Web應用程序。我的應用程序的數據庫位於服務器的不同服務器中,因爲報告使用來自兩臺服務器的數據,報告數據庫服務器中的鏈接服務器與應用程序的服務器有關。如何參數化SSRS數據集中的鏈接服務器引用?

在數據集的報告我有一個查詢波紋管:

SELECT T.column1, T1.column2 FROM localTable T JOIN [linkedServer].[databasename].tablename T1 ON T.id = T1.id

這裏只有3份報告,所以這是確定複製[linkedServer] [數據庫名稱]當我改變了應用程序。到另一個環境。

我的問題是:什麼是參數化[linkedServer] [數據庫名稱]爲了不更換需要每次服務器和/或數據庫名稱更改所有出現的最好方法?

+1

一種方法是動態sql。我想不出其他人。 – 2015-02-09 21:51:41

+0

如果您使用的是存儲過程,那麼使用'ssrs'參數的動態sql,如果查詢那麼您可以直接在該查詢中包含'ssrs'參數 – 2015-02-10 06:31:07

回答

2

在數據集中的查詢字段旁邊,有一個小小的fx允許您輸入查詢的表達式。

從您的示例查詢是

= "SELECT T.column1, T1.column2 FROM localTable T JOIN [" + Parameters!ReportParameter2.Value + "].[databasename].tablename T1 ON T.id = T1.id" 

或某物等。

在偏離主題的筆記我也建議不要使用server.database.owner.table語法,但openquery(服務器,'查詢')。這是出於性能原因,因爲server.database.owner.table將複製整個表並且openquery只檢索查詢的結果。

相關問題