DBCC CHECKCATALOG (Transact-SQL)

Изменения: 5 декабря 2005 г.

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

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

Синтаксис

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

Аргументы

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

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

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

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

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

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

Замечания

После выполнения команды 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 применяет монопольную блокировку базы данных для обеспечения необходимой согласованности. Если обнаружены несогласованности, они не подлежат исправлению и база данных должна быть восстановлена из резервной копии.

ms186720.note(ru-ru,SQL.90).gifПримечание.
В SQL Server 2005, выполнение DBCC CHECKCATALOG для tempdb не производит никаких проверок. Это обусловлено тем, что по соображениям, связанным с производительностью, моментальные снимки базы данных недоступны для базы данных tempdb. Это означает, что нельзя достичь требуемой согласованности транзакций. Очистите сервер для решения любых проблем с метаданными tempdb.

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

Разрешения

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

Примеры

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

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

См. также

Справочник

DBCC (Transact-SQL)
Системные таблицы (Transact-SQL)

Справка и поддержка

Получение помощи по SQL Server 2005

Журнал изменений

Версия Журнал

5 декабря 2005 г.

Добавления
  • Добавлены сведения о сообщениях об ошибках журнала SQL Server, а также таблица с описанием значений состояний в разделе «Примечания».