求救:SQL2000 823错误
执行查询:
select * from data
报错:服务器: 消息 823,级别 24,状态 2,行 1 连接中断
执行语句:
USE MASTER
GO
sp_dboption 'aa', 'single user', 'true'
Go
DBCC CHECKDB('aa',REPAIR_ALLOW_DATA_LOSS)
Go
USE aa
go
exec sp_msforeachtable "dbcc checktable('?',repair_rebuild)"
go
sp_dboption 'aa', 'single user', 'false'
报错:
服务器: 消息 8976,级别 16,状态 1,行 1
表错误: 对象 ID 891202275,索引 ID 1。在扫描操作中未发现页 (1:1445),而其父代 (1:11816) 和上一页 (1:23253) 指向了该页。请检查先前的错误。
服务器: 消息 8976,级别 16,状态 1,行 1
表错误: 对象 ID 891202275,索引 ID 1。在扫描操作中未发现页 (1:1446),而其父代 (1:29520) 和上一页 (1:26727) 指向了该页。请检查先前的错误。
服务器: 消息 8976,级别 16,状态 1,行 1
表错误: 对象 ID 891202275,索引 ID 1。在扫描操作中未发现页 (1:1447),而其父代 (1:31433) 和上一页 (1:35728) 指向了该页。请检查先前的错误。
DBCC 语句的修复级别导致回避了此修复。
DBCC 语句的修复级别导致回避了此修复。
DBCC 语句的修复级别导致回避了此修复。
DBCC 语句的修复级别导致回避了此修复。
DBCC 语句的修复级别导致回避了此修复。
DBCC 语句的修复级别导致回避了此修复。
DBCC 语句的修复级别导致回避了此修复。
DBCC 语句的修复级别导致回避了此修复。
DBCC 语句的修复级别导致回避了此修复。
注:aa是 数据库名,data是表名
------解决方案-------------------- 你做了备份吗,如果有备份,可以通过数据库备份和日志备份,来进行还原的。
------解决方案-------------------- 索引页损坏?
DBCC DBREINDEX (表名,’’) 试试修复这些表上的索引看看。
然后重新 DBCC CHECKDB,看还报错不。
不过这样有丢一部分数据的可能。 lz要做好备份工作。
------解决方案-------------------- 能导多少就导多少到DATAB吧,没办法喽
可以试着加WHERE条件按区段取数据试试
------解决方案-------------------- 你看有多少个表select时出现这种情况?做个统计
这是磁盘扇区有些损坏了读取不出数据的,需要从备份数据库获取这些表的数据。先把这个表删除,再从备份表重新获取这些数据。
------解决方案-------------------- 试试这个:
http://blog.csdn.net/sqlserverdiscovery/article/details/6667179
------解决方案-------------------- 引用: 非常感谢楼上两位的答复,DBCC命令试过了,修复不了,出问题的是data这个表,单独打开表返回所有行没有问题,到查询分析器去SELECT表的数据时提示823这个错误,请问重建一个结构与data一样的表dataB,有没有办法把data里面正常的数据导入到dataB,错误的页面数据不要了
注:数据库由于突然断电之后硬盘出问题经过修复的,备份文件用不了了
你说单独打开表,返回所有行没问题,能不能把数据导入到excel里呢,你看看这个文章:
http://blog.csdn.net/hank5658/article/details/7954455
------解决方案-------------------- DBCC解决不了的数据损坏,可以看看这个工具 http://blog.csdn.net/dlcyj/article/details/9330607
------解决方案-------------------- 重建一个结构与data一样的表dataB,然后导入数据到dataB,
加不同where条