Ssrs
SSRS中數據源中的動態更改表
我有一個 SSRS 報告,我設置它來查詢兩個表,我們稱它們
ABC_Audit
為ABC_AuditDetail
. 我現在已經將XYZ_Audit
和添加XYZ_AuditDetail
到同一個數據庫,並且希望能夠在查詢報表中的ABC...
或表之間切換。XYZ...
表的設置完全相同,因此查詢中唯一需要更改的部分是FROM ...
子句中的表名。在我的非 DBA、不是非常了解 SSRS 的眼中,可能有兩種方法可以實現這一點
- 要麼動態更改數據源(每組要查詢的表都有一個數據源),
- 或使用 SQL 查詢中的參數在要查詢的表集之間進行選擇,使用報告頁面上的下拉菜單訪問其中任何一個。
為每組表格創建單獨的報告不是一個可行的選擇,因為表格的數量會隨著時間的推移而增加,並且如果/何時更改所有這些報告,則保持最新狀態將是一項艱鉅的任務。
有沒有人對如何實現這一目標有任何建議,哪個選項是更好的選擇?
鑑於您預計數據集的數量會隨著時間的推移而增長,最好的辦法是在數據庫中創建一個儲存過程,該過程使用參數值來確定源表和動態 SQL 來建構查詢。
創建一個 SSRS 參數以匹配並將此值傳遞給數據集,儲存過程將從參數中指定的表返回結果。
基本範例:
CREATE PROCEDURE spGetData ( @SourceTable NVARCHAR(255) ) AS BEGIN DECLARE @SQL NVARCHAR(MAX) SET @SQL = 'SELECT [Column1], [Column2], [Column3] FROM [dbo].[' + @SourceTable + '_Audit]' EXEC sp_executesql @SQL END