次の方法で共有


MSSQLSERVER_8992

適用対象:SQL Server

詳細

アイテム 先頭値
製品名 SQL Server
イベント ID 8992
イベント ソース MSSQLSERVER
コンポーネント SQLEngine
シンボル名 DBCC3_CHECK_CATALOG
メッセージ テキスト カタログ メッセージ ERROR Level LEVEL の確認、状態 STATE: MESSAGE

8992 エラー メッセージでは、実際の不整合に関する別の特定のメッセージ (3851 から 3858 まで) が参照されます。

説明

DBCC CHECKCATALOG または DBCC CHECKDB 指定したオブジェクトのシステム メタデータ テーブルに不整合が見つかりました。 つまり、記録されたオブジェクト ID とエラー メッセージで指定されたオブジェクトの間に不整合があります。

このエラーは、1 つ以上のシステム テーブルが、システム メタデータに不整合を作成する方法で手動で更新された場合に発生する可能性があります。 たとえば、sysobjectssysindexesなどの他のテーブルの関連付けられた行を削除せずに、syscolumns テーブルからオブジェクトを手動で削除できます。

このエラーは、SQL Server 2000 (8.x) から新しいバージョンの SQL Server にアップグレードされたデータベースに対して DBCC CHECKDB を実行しているときに発生する可能性があります。 SQL Server 2000 (8.x) では、DBCC CHECKDBDBCC CHECKCATALOG機能が含まれていなかったため、SQL Server 2000 (8.x) のデータベースに対してDBCC CHECKCATALOGが具体的に実行されない限り、アップグレード前にエラーはキャッチされません。

エラー 8992 と共に、次のいずれかのエラーが表示される場合があります。

メッセージ識別子 メッセージ テキスト
3851 An invalid row (%ls) was found in the system table sys.%ls%ls.
3852 Row (%ls) in sys.%ls%ls does not have a matching row (%ls) in sys.%ls%ls.
3853 Attribute (%ls) of row (%ls) in sys.%ls%ls does not have a matching row (%ls) in sys.%ls%ls.
3854 Attribute (%ls) of row (%ls) in sys.%ls%ls has a matching row (%ls) in sys.%ls%ls that is invalid.
3855 Attribute (%ls) exists without a row (%ls) in sys.%ls%ls.
3856 Attribute (%ls) exists but should not for row (%ls) in sys.%ls%ls.
3857 The attribute (%ls) is required but is missing for row (%ls) in sys.%ls%ls.
3858 The attribute (%ls) of row (%ls) in sys.%ls%ls has an invalid value.

ユーザー アクション

指定したオブジェクトを削除して再作成する

可能であれば、指定されたオブジェクトを削除して再作成します。 たとえば、オブジェクトがストアド プロシージャまたはユーザー定義型の場合、オブジェクトを再作成すると問題が解決する可能性があります。

バックアップからの復元

問題がハードウェア関連ではなく、既知のクリーン バックアップが使用可能な場合は、バックアップからデータベースを復元します。 このアクションは、バックアップにメタデータ エラーが含まれていない場合にのみ適用されます。

データを新しいデータベースにエクスポートする

また、バックアップにメタデータの不整合が含まれている場合は、新しいデータベースを作成し、作成したデータベースに既存のデータベースのコンテンツをエクスポートする必要があります。

DBCC CHECKDB でこのエラーを修復できない

このエラーは修復できません。 バックアップからデータベースを復元できない場合は、Microsoft サポートにお問い合わせください。

システム テーブルを手動で更新しない

システム テーブルを手動で更新しないでください。 SQL Server では、システム データベースの手動変更はサポートされていません。 SQL Server データベース内のシステム テーブルを更新すると、次のイベントがログに記録されます。

システム テーブルが手動で更新された場合

Msg 17659: Warning: System table ID <id> has been updated directly in database ID <id> and cache coherence may not have been maintained. SQL Server should be restarted.

手動で更新されたシステム テーブルを使用してデータベースを開始する

Msg 3859: Warning: The system catalog was updated directly in database ID <id>, most recently at date_time.

システム テーブルが手動で更新された後、DBCC CHECKDB コマンドを実行します

Msg 3859: Warning: The system catalog was updated directly in database ID <id>, most recently at date_time.