MSSQLSERVER_8992
详细信息
产品名称 |
SQL Server |
产品版本 |
10.50 |
产品内部版本号 |
10.50.0000.00 |
事件 ID |
8992 |
事件源 |
MSSQLSERVER |
组件 |
SQLEngine |
符号名称 |
DBCC3_CHECK_CATALOG |
消息正文 |
请检查目录消息 ERROR,级别 LEVEL,状态 STATE: MESSAGE。 |
说明
DBCC CHECKCATALOG 或 DBCC CHECKDB 在指定对象的系统元数据表中发现了不一致。这就是说,已记录的对象 ID 与错误消息中指定的对象之间存在不一致。
如果通过某种方式手动更新一个或多个系统表,而该方式在系统元数据中造成了不一致,就会发生此错误。例如,用户可能从 sysobjects 表中手动删除了某个对象,但未从 sysindexes 和 syscolumns 等其他表中删除关联的行。
在对已从 SQL Server 2000 升级至 SQL Server 2005 或更高版本的数据库运行 DBCC CHECKDB 时,也可能发生此错误。在 SQL Server 2000 中,DBCC CHECKDB 并不包括 DBCC CHECKCATALOG 功能,因此升级前不会捕捉到此错误,除非专门针对 SQL Server 2000 中的数据库执行 DBCC CHECKCATALOG。
除错误 8992 外,还可能显示以下任一错误:
消息 3851 - 在系统表 sys.%ls%ls 中发现无效的行(%ls)。
消息 3852 - sys.%ls%ls 中的行(%ls)在 sys.%ls%ls 中没有匹配的行(%ls)。
3853 - sys.%ls%ls 中的行(%ls)的属性(%ls)在 sys.%ls%ls 中没有匹配的行(%ls)。
3854 - sys.%ls%ls 中的行(%ls)的属性(%ls)与 sys.%ls%ls 中的行(%ls)匹配,但该行无效。
3855 - 属性(%ls)存在,但 sys.%ls%ls 中没有行(%ls)。
3856 - 属性(%ls)存在,但它与 sys.%ls%ls 中的行(%ls)不匹配。
3857 - 缺少 sys.%ls%ls 中的行(%ls)所需的属性(%ls)。
3858 - sys.%ls%ls 中的行(%ls)的属性(%ls)具有无效的值。
用户操作
删除并重新创建指定的对象
如果可能,请删除并重新创建指定的对象。例如,如果该对象是一个存储过程或用户定义类型,则重新创建该对象将可能解决该问题。
从备份还原
如果出现的问题与硬件无关,并且已知有可用的干净备份,请从备份还原数据库。只有备份中没有元数据错误时,此操作才适用。
运行 DBCC CHECKDB
不适用。此错误无法修复。如果无法从备份还原数据库,请与 Microsoft 客户服务与支持部门 (CSS) 联系。