Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Область применения:SQL Server
Сведения
| Товар | значение |
|---|---|
| Название продукта | SQL Server |
| ИД события | 8992 |
| Источник событий | MSSQLSERVER |
| Компонент | SQLEngine |
| Символическое имя | DBCC3_CHECK_CATALOG |
| Текст сообщения | Проверка сообщения каталога: ошибка уровня [LEVEL], состояние [STATE]: MESSAGE. |
Примечание.
8992. Сообщение об ошибке ссылается на другое конкретное сообщение (от 3851 до 3858) о фактической несогласованности.
Описание
DBCC CHECKCATALOG или DBCC CHECKDB обнаружил несоответствие в таблицах системных метаданных для указанного объекта. То есть существует несоответствие между записанным идентификатором объекта и объектом, указанным в сообщении об ошибке.
Эта ошибка может возникать при обновлении одной или нескольких системных таблиц вручную, что создает несоответствие в системных метаданных. Например, можно вручную удалить объект из sysobjects таблицы без удаления связанных строк в других таблицах, таких как sysindexes и syscolumns.
Эта ошибка может возникать при выполнении DBCC CHECKDB базы данных, которая была обновлена с SQL Server 2000 (8.x) до более поздней версии SQL Server. В SQL Server 2000 (8.x) DBCC CHECKDB не включал DBCC CHECKCATALOG функции, поэтому ошибка не перехватывалась перед обновлением, если DBCC CHECKCATALOG только не выполняется в базе данных в SQL Server 2000 (8.x).
Вы можете увидеть любую из следующих ошибок вместе с ошибкой 8992:
| Идентификатор сообщения | Текст сообщения |
|---|---|
3851 |
An invalid row (%ls) was found in the system table sys.%ls%ls. |
3852 |
Row (%ls) in sys.%ls%ls does not have a matching row (%ls) in sys.%ls%ls. |
3853 |
Attribute (%ls) of row (%ls) in sys.%ls%ls does not have a matching row (%ls) in sys.%ls%ls. |
3854 |
Attribute (%ls) of row (%ls) in sys.%ls%ls has a matching row (%ls) in sys.%ls%ls that is invalid. |
3855 |
Attribute (%ls) exists without a row (%ls) in sys.%ls%ls. |
3856 |
Attribute (%ls) exists but should not for row (%ls) in sys.%ls%ls. |
3857 |
The attribute (%ls) is required but is missing for row (%ls) in sys.%ls%ls. |
3858 |
The attribute (%ls) of row (%ls) in sys.%ls%ls has an invalid value. |
Действие пользователя
Удаление и повторное создание указанного объекта
Если возможно, удалите и повторно создайте указанный объект. Например, если объект является хранимой процедурой или определяемым пользователем типом, повторное создание объекта может устранить проблему.
Восстановление из резервной копии
Если проблема не связана с оборудованием, а известная чистая резервная копия доступна, восстановите базу данных из резервной копии. Это действие применимо только в том случае, если резервная копия не содержит ошибку метаданных.
Экспорт данных в новую базу данных
Если резервная копия также содержит несогласованные метаданные, необходимо создать новую базу данных и экспортировать содержимое существующей базы данных в новую базу данных.
DBCC CHECKDB не может исправить эту ошибку
Эта ошибка не может быть исправлена. Если вы не можете восстановить базу данных из резервной копии, обратитесь в службу поддержки Майкрософт.
Не обновляйте системные таблицы вручную
Не обновляйте системные таблицы вручную. SQL Server не поддерживает никаких изменений вручную в системных базах данных. В случае обновления системной таблицы в базе данных SQL Server в журнале регистрируются следующие события:
При обновлении системной таблицы вручную
Msg 17659: Warning: System table ID <id> has been updated directly in database ID <id> and cache coherence may not have been maintained. SQL Server should be restarted.
Запуск базы данных с системной таблицей, которая была обновлена вручную
Msg 3859: Warning: The system catalog was updated directly in database ID <id>, most recently at date_time.
Выполните команду DBCC CHECKDB после обновления системной таблицы вручную.
Msg 3859: Warning: The system catalog was updated directly in database ID <id>, most recently at date_time.