SQL Serverで、データを更新しようとすると、特定の行だけ以下のエラーが発生するようになりました。
内部クエリ プロセッサ エラー: クエリ プロセッサ実行中に予期しないエラーが発生しました。
SQL serverの再起動、コンピュータの再起動を行っても、エラーは発生し続けています。
スポンサーリンク
DBCC CHECKDBを実行したらエラーは発生しなくなりました。
実行したコマンドは以下の3つです。
今回実行したデータは、REPAIR_ALLOW_DATA_LOSSを指定しているので、最悪データが吹っ飛ぶ可能性があります。
真似する場合は、バックアップをとるか、別のオプションを指定してください。
master データベースに接続してコマンドを実行します。
ALTER DATABASE [データベース名] SET SINGLE_USER
DBCC CHECKDB([データベース名],REPAIR_ALLOW_DATA_LOSS) WITH TABLERESULTS
ALTER DATABASE [データベース名] SET MULTI_USER
一時的にシングルユーザーモードにする必要があるため、その間、他のコンピュータからデータベースにアクセスできません。
一応、該当テーブルだけを修復する方法もありますが、シングルユーザーモードにする必要があります。
ALTER DATABASE [データベース名] SET SINGLE_USER
DBCC CHECKTABLE([データベース名].dbo.[テーブル名],REPAIR_ALLOW_DATA_LOSS) WITH TABLERESULTS
ALTER DATABASE [データベース名] SET MULTI_USER
別の手段としては、一旦テーブルの内容をエクスポートして、空っぽにしてから取り込むとなおります。
インデックスが再構築されるからだと思いますが、
を実行して、テーブルのインデックスを再構築しても直りませんでした。