web-dev-qa-db-ja.com

ファイルストリームを修正する方法は?

SQL Server 2008 R2を使用していますが、ファイルストリームに格納されている値にアクセスしようとすると、次のエラーが発生します。

メッセージ233、レベル20、状態0、行0
サーバーから結果を受信するときにトランスポートレベルのエラーが発生しました。 (プロバイダー:共有メモリプロバイダー、エラー:0-パイプのもう一方の端にプロセスがありません。)

また、SQLERRORLOGファイルで次のエラーがスローされます。

SqlDumpExceptionHandler:プロセス51が致命的な例外c0000005EXCEPTION_ACCESS_VIOLATIONを生成しました。 SQLServerはこのプロセスを終了しています。

その例外について読んだところ、MicrosoftにはKBがあります( KB972936 )が、修正プログラムをインストールした後も機能しませんでした。

SELECTの場合、以下を使用してそのテーブル内のレコードの数

SELECT COUNT(1) FROM [Table_Name]

正しい結果が得られます。

データベースファイルとファイルグループの詳細は次のとおりです。データベースには、「行データ」ファイルと「ログ」ファイルの2つのファイルがあり、「ファイルストリームデータ」項目も含まれている必要があります。

データベースには次のファイルグループがあります。

  • 行:1ファイルのPRIMARY
  • ファイルストリーム:[MyFileName] with 0 Files!

DBプロパティページ のスナップショットを次に示します。

そしてここに 完全なSQL ERRORLOGファイル があります。

1
Amer Sawan

このエラーは、SQLServerサービスアカウントがファイルストリームデータにアクセスできないことを示しているようです。 SQL Server構成マネージャー(Windowsサービスマネージャーではありません!)を使用して、SQLServerサービスアカウントを組み込みアカウントの1つに変更してみてください。次に、元のアカウントに戻します(ここでパスワードを知っている必要があります!)。

これで、アクセス権の問題が修正されるはずです。ただし、2回のサービス再起動が発生します。

2
Sebastian Meine