多くのデータソースを持つSSRSで作成されたレポートがあります。SSRS - データベースが存在しない場合は無視
ごくまれに、これらのデータソースの1つが切り離されていることがあります。 SSASデータベースが大規模な仕事のためにメモリを解放するためにDevサーバー上で一時的に切り離されたので、これは最近起こったことです。それが起こった
、レポート全体がエラー「クエリの実行がデータセット 『DatasetName』(rsErrorExecutingCommand)のために失敗した投げ、実行することを拒否 どちらのユーザー、 『ユーザー名は』、 『DBNAME』データベースへのアクセス権を持っていません
データセット内のクエリまたはおそらくデータソースのクエリを修正する必要があります。これにより、クエリが失敗した場合(DBがダウン/デタッチされているため)、それでも他のすべてが実行されるようになります報告書に誤りがあるかもしれません。
[編集]
- ブッシェルからの支援によりが、これは私が使用して終了するものである:
1)常にアップする必要がありますSQL Serverの()に - 私は、SSASインスタンスへのリンクサーバーを
2)変更作成しましたSSASインスタンスの代わりにSQL Serverを指すようにSSRSのデータソースを設定します
3)このクエリを使用して(以下を参照)、SSASリンクサーバーが稼動していたかどうかを確認しました。それが動作している間は動作します!右に私を指しているためブッシェルへ (これを読んで、誰もが同じ方法を使用している場合、あなたは自分自身のクエリを使用して、私の「など...明確な選択」を交換する必要があると思います)
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ステートメントを使用して、潜在的に切り離されたDBからデータを引き出すことができます。試行が失敗した場合は、単純にデータを返しません。単に列見出しだけを返します。 – bushell