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


DBCC CHECKCATALOG (Transact-SQL)

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

Значок ссылки на разделСинтаксические обозначения в Transact-SQL

Синтаксис

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

Аргументы

  • database_name | database_id | 0
    Название или идентификатор базы данных, для которой проверяется согласованность каталогов. Если значение не указано или указано значение 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» в 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.

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

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

Разрешения

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

Примеры

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

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