Rss & SiteMap

昂捷论坛 http://www.enjoyit.com.cn

中国零售业界精英论坛!
共2 条记录, 每页显示 15 条, 页签: [1]
[浏览完整版]

标题:数据库表损坏的处理

1楼
czg1981 发表于:2010/7/19 19:48:22

如果对数据操作时,提示循环冗余等错误,可以执行一下 dbcc checkdb 检查表的逻辑性,如果出现类似的提示:

消息 8966,级别 16,状态 2,第 1 行
无法使用闩锁类型 SH 读取并闩锁页 (1:5782420)。23(数据错误(循环冗余检查)。) 失败。
消息 2533,级别 16,状态 1,第 1 行
表错误: 看不到分配给对象 ID 174883940,索引 ID 0,分区 ID 11461193891840,分配单元 ID 72057595680129024 (类型为 In-row data)的页 (1:7473486)。该页可能无效,或者页头中可能包含错误的分配单元 ID。

 

这说明数据库中有表(174883940)有损坏,先将数据库改成单用户状态exec sp_dboption enjoy_store, N'single', N'true',然后执行可以执行DBCC checkdb (enjoy_store,REPAIR_ALLOW_DATA_LOSS)进行修改,或者通过表的ID找到具体的表名称,对表进行单个修复,如:dbcc checktable ('tbs_d_gds',REPAIR_REBUILD),再将数据库状态改回来exec sp_dboption enjoy_store, N'single', N'false'

2楼
czg1981 发表于:2010/8/11 9:12:19

查看错误表名称可以用系统索引

select * from sysobjects where id='174883940'

共2 条记录, 每页显示 15 条, 页签: [1]

Copyright © 2006-2010 EnjoyIT.com.cn
网友言论或观点与昂捷公司无关!涉及版权/著作权问题请与发帖者直接联系
Powered By Dvbbs Version 8.2.0
Processed in 0.13281 s, 2 queries.