首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

:可能发生了架构损坏。请运行 DBCC CHECKCATALOG

2013-10-15 
紧急求助:可能发生了架构损坏。请运行 DBCC CHECKCATALOG。求助查询某个表报可能发生了架构损坏。请运行 DBCC

紧急求助:可能发生了架构损坏。请运行 DBCC CHECKCATALOG。求助
查询某个表报可能发生了架构损坏。请运行 DBCC CHECKCATALOG。,在日志也会记录。
通过DBCC CHECKCATALOG 查出来提示:


消息 3858,级别 16,状态 1,第 1 行
sys.objects 中的行(object_id=25068742)的属性(type=)具有无效的值。
消息 3858,级别 16,状态 1,第 1 行
sys.objects 中的行(object_id=25068742)的属性(namespace_class=219)具有无效的值。
消息 3853,级别 16,状态 1,第 1 行
sys.columns 中的行(object_id=183059788,column_id=8)的属性(default_object_id=199059845)在 sys.objects 中没有匹配的行(object_id=199059845)。
DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。


查过sys.objects表没匹配的行,发现是某个表的约束在sys.objects表中缺少一行记录。
为什么会缺少了?现在如何补上?不然一查那个表就报错。CHECKDB \CHECKTABLE 都没用。
[解决办法]
sys.objects 中的行(object_id=25068742)的属性(type=)具有无效的值。 消息 3858,级别 16,状态 1,第 1 行 sys.objects 中的行(object_id=25068742)的属性(namespace_class=219)具有无效的值。 消息 3853,级别 16,状态 1,第 1 行 sys.columns 中的行(object_id=183059788,column_id=8)的属性(default_object_id=199059845)在 sys.objects 中没有匹配的行(object_id=199059845)。 DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。  
---------------------
select * from sysobjects where id=25068742 -->查询是哪个表
select * from sysobjects where id=183059788 -->查询是哪个表
select a.name,b.name
from sysobjects a inner join syscolumns b on a.id=b.id
where a.id=183059788  -->查询是哪个表哪一列?

select * from sysobjects where id=199059845
-->查询是哪个表


[解决办法]
尝试:
1、重建该表聚集索引
2、试试select * into 新表 from 有问题的表 ,然后删除这个有问题的表,把新表重命名。

热点排行