DBCC CHECKCATALOG (Transact-SQL)

指定されたデータベース内でのカタログの一貫性をチェックします。データベースはオンラインである必要があります。

トピック リンク アイコンTransact-SQL 構文表記規則

構文

DBCC CHECKCATALOG 
[ 
        ( 
        database_name | database_id | 0
        )
]
    [ WITH NO_INFOMSGS ] 

引数

  • database_name | database_id | 0
    カタログの一貫性をチェックするデータベースの名前または ID です。指定しない場合、または 0 を指定した場合は、現在のデータベースが使用されます。データベース名は、識別子のルールに従っている必要があります。

  • WITH NO_INFOMSGS
    すべての情報メッセージを表示しないようにします。

説明

DBCC CATALOG コマンドの終了後、メッセージが SQL Server エラー ログに書き込まれます。DBCC コマンドが正常に実行された場合、メッセージでは正常完了とコマンド実行時間が示されます。エラーが発生して DBCC コマンドが完了前に停止した場合、メッセージではコマンドが終了したことと、状態の値、およびコマンド実行時間が示されます。次の表は、メッセージに含まれる可能性がある状態値の一覧と説明です。

状態

説明

0

エラー番号 8930 が発生しました。メタデータの破損が原因で DBCC コマンドが終了しました。

1

エラー番号 8967 が発生しました。内部 DBCC エラーがあります。

2

緊急モードのデータベース修復中にエラーが発生しました。

3

メタデータの破損が原因で DBCC コマンドが終了しました。

4

アサートまたはアクセス違反が検出されました。

5

不明なエラーが発生し、DBCC コマンドが終了しました。

DBCC CHECKCATALOG は、システム メタデータ テーブル間でさまざまな一貫性チェックを実行します。DBCC CHECKCATALOG は、内部データベース スナップショットを使用してこれらのチェックを実行するために必要なトランザクション一貫性を確保します。詳細については、「データベース スナップショットのスパース ファイルのサイズについて」、および「DBCC (Transact-SQL)」の「DBCC 内部データベース スナップショットの使用」を参照してください。

スナップショットが作成できない場合、DBCC CHECKCATALOG は排他データベース ロックを獲得して必要な一貫性を取得します。不一致が検出された場合、これらは修復できず、データベースをバックアップから復元する必要があります。

注意注意

tempdb に対して DBCC CHECKCATALOG を実行してもチェックは実行されません。これは、パフォーマンス上の理由から、データベースのスナップショットが tempdb では利用できないためです。つまり、必要なトランザクションの一貫性を実現できません。tempdb メタデータの問題を解決するにはサーバーを再利用します。

注意注意

DBCC CHECKCATALOG では、FILESTREAM データはチェックされません。FILESTREAM はバイナリ ラージ オブジェクト (BLOB) をファイル システムに格納します。

DBCC CHECKCATALOG は、DBCC CHECKDB の一部としても実行されます。

結果セット

データベースが指定されていない場合、DBCC CHECKCATALOG は次の値を返します。

DBCC execution completed. If DBCC printed error messages, contact your system administrator.

AdventureWorks がデータベース名として指定されていない場合、DBCC CHECKCATALOG は次の値を返します。

DBCC execution completed. If DBCC printed error messages, contact your system administrator.

権限

sysadmin 固定サーバー ロールまたは db_owner 固定データベース ロールのメンバシップが必要です。

次の例では、現在のデータベースと AdventureWorks データベースの両方におけるカタログの整合性をチェックしています。

-- Check the current database.
DBCC CHECKCATALOG;
GO
-- Check the AdventureWorks database.
DBCC CHECKCATALOG (AdventureWorks);
GO