--应该是表或数据库损坏,先用下面的语句,检查/修复数据库/并整理索引碎片(需要比较长的时间,请在系统空闲时进行此工作)USE MASTER
GOsp_dboption '你的数据库名', 'single user', 'true'
GoDBCC CHECKDB('你的数据库名', REPAIR_REBUILD)
GoUSE 你的数据库名
goexec sp_msforeachtable 'DBCC CHECKTABLE(''?'',REPAIR_REBUILD)'
exec sp_msforeachtable 'DBCC DBREINDEX(''?'')'
gosp_dboption '你的数据库名', 'single user', 'false'
Go
GOsp_dboption '你的数据库名', 'single user', 'true'
GoDBCC CHECKDB('你的数据库名', REPAIR_REBUILD)
GoUSE 你的数据库名
goexec sp_msforeachtable 'DBCC CHECKTABLE(''?'',REPAIR_REBUILD)'
exec sp_msforeachtable 'DBCC DBREINDEX(''?'')'
gosp_dboption '你的数据库名', 'single user', 'false'
Go
...(部分省略)
表错误: 对象 ID 1028914737,索引 ID 0,页 (1:6316),行 36。测试(ColumnOffsets <= (nextRec - pRec))失败。值为 617 和 133。
'GL_accsum' 的 DBCC 结果。
DBCC 语句的修复级别导致回避了此修复。
DBCC 语句的修复级别导致回避了此修复。
对象 'GL_accsum' 有 1191 行,这些行位于 22 页中。
CHECKTABLE 发现了 0 个分配错误和 2 个一致性错误(在表 'GL_accsum' 中,该表的对象 ID 为 1028914737)。
repair_allow_data_loss 是最低的修复级别(对于由 DBCC CHECKTABLE (UFDATA_023_2004.dbo.GL_accsum repair_rebuild) 发现的错误而言)。
服务器: 消息 3624,级别 20,状态 1,行 1
Location: recbase.cpp:1374
Expression: m_nVars > 0
SPID: 51
Process ID: 492
ODBC: 消息 0,级别 16,状态 1
通讯链接失败连接中断
gosp_dboption '你的数据库名', 'single user', 'true'
GoDBCC CHECKTABLE('GL_accsum',REPAIR_ALLOW_DATA_LOSS) --这种可能会丢失一部分数据库
gosp_dboption '你的数据库名', 'single user', 'false'