我需要将数据库从 SQL Server 2000(32 位)移动到 SQL Server 2005。但是,当我将数据库连接到 SQL Server 2005 时,出现错误。(NOLOCK 错误)
此外,在我运行 dbcc check db 命令以查找数据库错误后,我收到以下错误。
Server: Msg 8929, Level 16, State 1, Line 1
Object ID 2: Errors found in text ID 727515136
owned by data record identified by RID = (1:391:14) id = 491864819 and indid = 9.
Server: Msg 8929, Level 16, State 1, Line 1
Object ID 2: Errors found in text ID 727646208
owned by data record identified by RID = (1:391:16) id = 491864819 and indid = 11.
Server: Msg 8929, Level 16, State 1, Line 1
Object ID 2: Errors found in text ID 768802816
owned by data record identified by RID = (1:2243:15) id = 1796253504 and indid = 54.
Server: Msg 8929, Level 16, State 1, Line 1
CHECKDB found 0 allocation errors and 16 consistency errors in database 'XXXXX'.
DBCC execution completed. If DBCC printed error messages,
contact your system administrator.
SQL Server 世界中数据库损坏的最佳在线资源是Paul Randal 的网页。他是我们世界上腐败问题上的头号明星。那是因为他在 SQL Server 中编写了所有dbcc 检查命令(而且他是唯一能够正确理解它们的人:-)。
我现在在你的地方做的是尝试将数据库移动到新的 SQL Server 的备份恢复方法或尝试带修复选项的 dbcc(而不是在备份数据库之前)。
MSDN 上也有一些关于如何处理这些错误的有用信息。查看文章SQL Server 2005 中的 DBCC 错误 2570 疑难解答。