DBCC CHECKCATALOG (Transact-SQL)
Применимо к:база данныхSQL Server Azure SQL Управляемый экземпляр SQL Azure
Проверяет согласованность каталогов в указанной базе данных. База данных должна быть в режиме в сети.
Соглашения о синтаксисе Transact-SQL
Синтаксис
DBCC CHECKCATALOG
[
(
database_name | database_id | 0
)
]
[ WITH NO_INFOMSGS ]
Примечание
Ссылки на описание синтаксиса Transact-SQL для SQL Server 2014 и более ранних версий, см. в статье Документация по предыдущим версиям.
Аргументы
database_name | database_id | 0
Имя или идентификатор базы данных, для которой проверка согласованность каталога. Если значение не указано или указано значение 0, используется текущая база данных. Имена баз данных должны соответствовать правилам идентификаторов.
WITH NO_INFOMSGS
Подавляет вывод всех информационных сообщений.
Remarks
DBCC CHECKCATALOG
После завершения команды в журнал ошибок SQL Server записывается сообщение. При успешном выполнении команды DBCC сообщается об успешном завершении и количестве времени, затраченном на выполнение команды. Если выполнение команды DBCC прерывается до завершения проверки по причине ошибки, сообщение указывает на прерывание команды и приводит значение состояния и количество времени, затраченного на выполнение команды. В следующей таблице перечислены и описаны значения состояний, которые могут быть включены в сообщение.
Состояние | Описание |
---|---|
0 | Возникла ошибка с номером 8930. Это указывает на повреждение метаданных, вызвавшее прекращение выполнения команды DBCC. |
1 | Возникла ошибка с номером 8967. Внутренняя ошибка DBCC. |
2 | При аварийном восстановлении базы данных произошла ошибка. |
3 | Это указывает на повреждение метаданных, вызвавшее прекращение выполнения команды DBCC. |
4 | Обнаружено нарушение доступа или утверждения. |
5 | Возникла неизвестная ошибка, которая привела к прекращению выполнения команды DBCC. |
DBCC CHECKCATALOG
выполняет различные проверки согласованности между таблицами метаданных системы. DBCC CHECKCATALOG
использует внутреннюю snapshot базы данных, чтобы обеспечить согласованность транзакций, необходимую для выполнения этих проверок. Дополнительные сведения см. в разделах Просмотр размера разреженного файла моментального снимка базы данных (Transact-SQL) и в разделе Использование внутренней базы данных DBCC snapshot в DBCC (Transact-SQL).
Если snapshot не удается создать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