我们有一个数据库 Ms
DBCC CHECKDB (MS)
或者
ALTER DATABASE MS SET SINGLE_USER
DBCC CHECKDB(MS,REPAIR_ALLOW_DATA_LOSS)
ALTER DATABASE MS SET MULTI_USER
错误信息
消息 0,级别 11,状态 0,行 0:
当前命令发生严重错误。结果,如果有的话,应该丢弃。消息 0,级别 20,状态 0,行 0:
当前命令发生严重错误。结果,如果有的话,应该丢弃。
在花费数小时测试每个表后,发现有问题的表是“LC”
DBCC CHECKTABLE(LC)
错误信息
消息 211,级别 23,状态 51,第 1 行:
可能的架构损坏。运行 DBCC CHECKCATALOG。
现在,
DBCC CHECKCATALOG
信息
DBCC 执行完成。如果 DBCC 打印错误消息,请联系您的系统管理员。
我还尝试查看索引
SELECT * FROM sysindexes
错误信息
消息 211,级别 23,状态 51,第 1 行:
可能的架构损坏。运行 DBCC CHECKCATALOG。消息 0,级别 20,状态 0,行 0:
当前命令发生严重错误。结果,如果有的话,应该丢弃。
再次,
SELECT * FROM LC
或者
DROP TABLE LC
错误信息
消息 211,级别 23,状态 51,第 1 行:
可能的架构损坏。运行 DBCC CHECKCATALOG。消息 0,级别 20,状态 0,行 0:
当前命令发生严重错误。结果,如果有的话,应该丢弃。
我不介意该特定表的数据丢失,我希望删除该表。任何想法,请帮助!
你可以
RESTORE
而且永远不会使用(这篇文章值得一读)!说真的,再多的 DBCC voodoo 也不会让您的数据库恢复到原始的工作状态。REPAIR_ALLOW_DATA_LOSS
这些类型错误的最可能原因是磁盘驱动器故障。在继续进行故障排除之前,请使用hdtune或
chkdsk /R
. 我还建议进行内存测试(有一个称为 Windows 内存诊断的内置测试。)一旦你确定机器没问题,你就可以将所有好的表复制到一个新的数据库中。然后您可以删除旧数据库。