我在SSRS中創建了一個包含多個數據源的報告。SSRS - 忽略數據庫不存在
在極少數情況下,其中一個數據源可能已被分離。最近發生了這種情況,因爲SSAS數據庫暫時分離在開發服務器上以釋放大量工作的內存。 (rsErrorExecutingCommand) 用戶'UserName'不能訪問'DBName'數據庫,或者數據庫不存在
是否有修改數據集或數據源中的查詢,以便如果查詢失敗(因爲數據庫已關閉/分離),它仍然運行其他所有數據,但可能在報告中顯示錯誤。
[編輯]
從布舍爾援助 - 這就是我最終使用:
1)在SQL Server上(應該始終是向上) - 我創建了一個鏈接服務器的SSAS實例
2)改變我的SSRS數據源指向SQL Server而不是SSAS實例
3)使用此查詢(請參閱下文)檢查SSAS鏈接的服務器是否啓動 - 我無法使用SSAS進行測試,但它確實有效! (如果有人讀這是用同樣的方法,你只需要更換我的「SELECT DISTINCT ...等」用自己的查詢)
BEGIN TRY
EXEC sp_testlinkedserver N'SSAS_LinkedServer';
EXEC sp_executesql N'SELECT * FROM OPENQUERY(SSAS_LinkedServer,
''SELECT
DISTINCT
[CATALOG_NAME] as [Database],
[CUBE_NAME],
DIMENSION_CAPTION AS [Dimension],
DIMENSION_CARDINALITY AS [Count]
FROM $system.MDSchema_Dimensions
ORDER BY DIMENSION_CARDINALITY DESC;'');';
END TRY
BEGIN CATCH
SELECT
'' as [Database],
'' as [CUBE_NAME],
'' AS [Dimension],
'' AS [Count]
END CATCH
感謝布舍爾指着我在正確的方向。
您可以在存儲過程中構建數據集,然後使用Try/Catch語句從可能分離的數據庫中提取數據。如果嘗試失敗,只需返回任何數據,或只是列標題。 – bushell