Linux ·

SQL2000下修复某数据库的经历

某个SQL2000的数据库,在通过备份/还原的方法升级到2005时发生错误:

SQL2000下修复某数据库的经历 Linux 第1张

查找解决方法未果

正好最近在看 @一线码农 的《sql server之旅》,就想自己试试解决这个问题

首先运行dbcc checkdb命令,结果如下:

SQL2000下修复某数据库的经历 Linux 第2张

仔细查看出错信息,里面反复提到一个“对象 ID 2”。另外,信息里还提到“该文本的所有者是由 RID = (1:152:9) id = 213575799 and indid = 37 标识的数据记录”。联想到最近看的《sql server之旅》,觉得第二段信息可能是在说某个数据表。于是select之:

SQL2000下修复某数据库的经历 Linux 第3张

果然都有对应的表!

分别select这两个表,发现问题出在sysindexes上:

SQL2000下修复某数据库的经历 Linux 第4张

这和上面的出错信息也是一致的。

立刻尝试用dbcc checkdb和dbcc checktable修复,但是却得到以下回应:

参与评论