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