Поделиться через


DBCC CHECKCATALOG (Transact-SQL)

Область применения: SQL Server База данных SQL Azure Управляемый экземпляр SQL Azure

Проверяет согласованность каталогов в указанной базе данных. База данных должна быть в режиме в сети.

Соглашения о синтаксисе Transact-SQL

Синтаксис

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

Аргументы

database_name | database_id | 0

Имя или идентификатор базы данных, для которой проверяется согласованность каталога. Если значение не указано или указано значение 0, используется текущая база данных. Имена баз данных должны соответствовать правилам идентификаторов.

WITH NO_INFOMSGS

Подавляет вывод всех информационных сообщений.

Замечания

DBCC CHECKCATALOG После завершения команды сообщение записывается в журнал ошибок SQL Server. При успешном выполнении команды DBCC сообщается об успешном завершении и количестве времени, затраченном на выполнение команды. Если выполнение команды DBCC прерывается до завершения проверки по причине ошибки, сообщение указывает на прерывание команды и приводит значение состояния и количество времени, затраченного на выполнение команды. В следующей таблице перечислены и описаны значения состояний, которые могут быть включены в сообщение.

State Описание:
0 Возникла ошибка с номером 8930. Это указывает на повреждение метаданных, вызвавшее прекращение выполнения команды DBCC.
1 Возникла ошибка с номером 8967. Внутренняя ошибка DBCC.
2 При аварийном восстановлении базы данных произошла ошибка.
3 Это указывает на повреждение метаданных, вызвавшее прекращение выполнения команды DBCC.
4 Обнаружено нарушение доступа или утверждения.
5 Возникла неизвестная ошибка, которая привела к прекращению выполнения команды DBCC.

DBCC CHECKCATALOG выполняет различные проверки согласованности между таблицами метаданных системы. DBCC CHECKCATALOG использует внутренний моментальный снимок базы данных для обеспечения согласованности транзакций, которую требуется выполнить эти проверки. Дополнительные сведения см. в разделе "Размер разреженного файла моментального снимка базы данных" (Transact-SQL) и раздела об использовании внутреннего моментального снимка базы данных DBCC (Transact-SQL).

Если моментальный снимок не может быть создан DBCC CHECKCATALOG , получает монопольную блокировку базы данных для получения требуемой согласованности. Если обнаружены какие-либо несоответствия, их невозможно восстановить, а база данных должна быть восстановлена из резервной копии.

Примечание.

Выполнение DBCC CHECKCATALOG не tempdb выполняет никаких проверок. Это связано с тем, что по соображениям производительности моментальные снимки базы данных недоступны tempdb. Это означает, что нельзя достичь требуемой согласованности транзакций. Перезапустите службу ядро СУБД, чтобы устранить все tempdb проблемы с метаданными.

Примечание.

DBCC CHECKCATALOG не проверяет данные FILESTREAM. FILESTREAM сохраняет в файловой системе большие двоичные объекты.

DBCC CHECKCATALOG также выполняется как часть DBCC CHECKDB.

Результирующие наборы

Если база данных не указана, DBCC CHECKCATALOG возвращается:

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

Если AdventureWorks2022 имя базы данных указано в качестве имени базы данных, DBCC CHECKCATALOG возвращается:

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

Разрешения

Необходимо быть членом предопределенной роли сервера sysadmin или предопределенной роли базы данных db_owner.

Примеры

Следующий пример проверяет целостность каталогов в текущей базе данных и в базе данных AdventureWorks2022.

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

См. также