DBCC CHECKCATALOG (Transact-SQL)DBCC CHECKCATALOG (Transact-SQL)

適用対象: yesSQL Server yesAzure SQL Database noAzure Synapse Analytics (SQL DW) noParallel Data Warehouse APPLIES TO: yesSQL Server yesAzure SQL Database noAzure Synapse Analytics (SQL DW) noParallel Data Warehouse

指定されたデータベース内でのカタログの一貫性をチェックします。Checks for catalog consistency within the specified database. データベースはオンラインである必要があります。The database must be online.

トピック リンク アイコン Transact-SQL 構文表記規則Topic link icon Transact-SQL Syntax Conventions

構文Syntax

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

引数Arguments

database_name | database_id | 0database_name | database_id | 0
カタログの一貫性をチェックするデータベースの名前または ID です。Is the name or ID of the database for which to check catalog consistency. 値を指定しないか 0 を指定した場合は、現在のデータベースが使用されます。If not specified, or if 0 is specified, the current database is used. データベース名は、識別子のルールに従っている必要があります。Database names must comply with the rules for identifiers.

WITH NO_INFOMSGSWITH NO_INFOMSGS
すべての情報メッセージを表示しないようにします。Suppresses all informational messages.

解説Remarks

DBCC CATALOG コマンドの終了後、メッセージが SQL ServerSQL Server エラー ログに書き込まれます。After the DBCC CATALOG command finishes, a message is written to the SQL ServerSQL Server error log. DBCC コマンドが正常に実行された場合、メッセージでは正常完了とコマンド実行時間が示されます。If the DBCC command successfully executes, the message indicates a successful completion and the amount of time that the command ran. エラーが発生して DBCC コマンドが完了前に停止した場合、メッセージではコマンドが終了したことと、状態の値、コマンド実行時間が示されます。If the DBCC command stops before completing the check because of an error, the message indicates the command was terminated, a state value, and the amount of time the command ran. 次の表は、メッセージに含まれる可能性がある状態値の一覧と説明です。The following table lists and describes the state values that can be included in the message.

StateState [説明]Description
00 エラー番号 8930 が発生しました。Error number 8930 was raised. メタデータの破損が原因で DBCC コマンドが終了しました。This indicates a metadata corruption that caused the DBCC command to terminate.
11 エラー番号 8967 が発生しました。Error number 8967 was raised. 内部 DBCC エラーがあります。There was an internal DBCC error.
22 緊急モードのデータベース修復中にエラーが発生しました。A failure occurred during emergency mode database repair.
33 メタデータの破損が原因で DBCC コマンドが終了しました。This indicates a metadata corruption that caused the DBCC command to terminate.
44 アサートまたはアクセス違反が検出されました。An assert or access violation was detected.
55 不明なエラーが発生し、DBCC コマンドが終了しました。An unknown error occurred that terminated the DBCC command.

DBCC CHECKCATALOG は、システム メタデータ テーブル間でさまざまな一貫性チェックを実行します。DBCC CHECKCATALOG performs various consistency checks between system metadata tables. DBCC CHECKCATALOG は、内部データベース スナップショットを使用してこれらのチェックを実行するために必要なトランザクション一貫性を確保します。DBCC CHECKCATALOG uses an internal database snapshot to provide the transactional consistency that it needs to perform these checks. 詳細については、次を参照してください。「データベース スナップショットのスパース ファイルのサイズを表示する方法 (Transact-SQL)」および「DBCC (Transact-SQL)」の「DBCC 内部データベース スナップショットの使用」セクション。For more information, see View the Size of the Sparse File of a Database Snapshot (Transact-SQL) and the "DBCC Internal Database Snapshot Usage" section in DBCC (Transact-SQL). スナップショットが作成できない場合、DBCC CHECKCATALOG は排他データベース ロックを獲得して必要な一貫性を取得します。If a snapshot cannot be created DBCC CHECKCATALOG acquires an exclusive database lock to obtain the required consistency. 不一致が検出された場合、これらは修復できず、データベースをバックアップから復元する必要があります。If any inconsistencies are detected, they cannot be repaired and the database must be restored from a backup.

注意

tempdb に対して DBCC CHECKCATALOG を実行してもチェックは実行されません。Running DBCC CHECKCATALOG against tempdb does not perform any checks. これは、パフォーマンス上の理由から、データベースのスナップショットが tempdb では利用できないためです。This is because, for performance reasons, database snapshots are not available on tempdb. つまり、必要なトランザクションの一貫性を実現できないためです。This means that the required transactional consistency cannot be obtained. tempdb メタデータの問題を解決するにはサーバーを再利用します。Recycle the server to resolve any tempdb metadata issues.

注意

DBCC CHECKCATALOG では、FILESTREAM データはチェックされません。DBCC CHECKCATALOG does not check FILESTREAM data. FILESTREAM はバイナリ ラージ オブジェクト (BLOB) をファイル システムに格納します。FILESTREAM stores binary large objects (BLOBS) on the file system.

DBCC CHECKCATALOG は、DBCC CHECKDB の一部としても実行されます。DBCC CHECKCATALOG is also run as part of DBCC CHECKDB.

結果セットResult Sets

データベースが指定されていない場合、DBCC CHECKCATALOG は次の値を返します。If no database is specified, DBCC CHECKCATALOG returns:

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

AdventureWorks2012AdventureWorks2012 がデータベース名として指定されていない場合、DBCC CHECKCATALOG は次の値を返します。If AdventureWorks2012AdventureWorks2012 is specified as the database name, DBCC CHECKCATALOG returns:

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

アクセス許可Permissions

sysadmin 固定サーバー ロールまたは db_owner 固定データベース ロールのメンバーシップが必要です。Requires membership in the sysadmin fixed server role, or the db_owner fixed database role.

Examples

次の例では、現在のデータベースと AdventureWorks データベースの両方におけるカタログの整合性をチェックしています。The following example checks the catalog integrity in both the current database and in the AdventureWorks database.

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

参照See Also

DBCC (Transact-SQL)DBCC (Transact-SQL)
システム テーブル (Transact-SQL)System Tables (Transact-SQL)