Ssrs

SSRS中數據源中的動態更改表

  • December 12, 2018

我有一個 SSRS 報告,我設置它來查詢兩個表,我們稱它們ABC_AuditABC_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

引用自:https://dba.stackexchange.com/questions/224622