用Sql2000的数据库,其中有个表 barcode 估计损坏了
在查询分析器执行 select * from barcode
提示
服务器: 消息 3624,级别 20,状态 1,行 1
Location: recbase.cpp:1371
Expression: m_nVars > 0
SPID: 52
Process ID: 776
连接中断
然后
执行 dbcc checktable(lhstock)
提示
服务器: 消息 8928,级别 16,状态 1,行 1
对象 ID 1237579447,索引 ID 0: 未能处理页 (1:13464)。详细信息请参阅其它错误。
服务器: 消息 8944,级别 16,状态 1,行 1
表错误: 对象 ID 1237579447,索引 ID 0,页 (1:13464),行 8。测试(ColumnOffsets <= (nextRec - pRec))失败。值为 16680 和 972。
服务器: 消息 8964,级别 16,状态 1,行 1
修复办法
use master
GO
-- sp_dboption 用于显示或更改数据库选项。当为 single user 选项为 true 时,每次只能有一个用户访问数据库。
sp_dboption 'lhstock','single user','true'
DBCC CHECKDB('lhstock',REPAIR_ALLOW_DATA_LOSS)
sp_dboption 'lhStock','single user','false'
'lhstock' 的 DBCC 结果。
'Barcode' 的 DBCC 结果。
对象 'Barcode' 有 326848 行,这些行位于 6896 页中。
CHECKDB 发现了 0 个分配错误和 0 个一致性错误(在数据库 'lhStock' 中)。
DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。