我正在更改列标识中的增量(将其改为 2 而不是 1)。更改 DB 时,SQL Server 给出以下错误。我在网上搜索过,但有些人说这可能是硬件问题,但我在不同的机器上尝试了同样的事情,但给出的错误相同。以下是错误...
无法修改表。SQL Server 检测到基于逻辑一致性的 I/O 错误:校验和不正确(预期:0x0c413292;实际:0x0c413282)。它发生在读取文件“C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA\TimeCommerceV5.mdf”中偏移量为 0x0000000a812000 的数据库 ID 7 中的页面 (1:21513) 期间。SQL Server 错误日志或系统事件日志中的其他消息可能会提供更多详细信息。这是一种严重的错误情况,会威胁数据库的完整性,必须立即纠正。完成完整的数据库一致性检查 (DBCC CHECKDB)。此错误可能由多种因素引起;有关更多信息,请参阅 SQL Server 联机丛书。
答案1
您有好的备份吗?也许是时候使用它了。我怀疑这与更改身份增量无关,而是由于尝试将数据复制/写入坏页而导致的。DBCC CHECKDB
结果如何?怎么样:
DBCC PAGE(7, 1, 21513, 3);
答案2
(从评论中移出)投票决定移至 serverfault,我相信您收到的错误以及您的立即行动是不要惊慌,并立即备份数据库。然后您可以开始查看 dbcc checkdb 并查看已损坏的内容。
我必须强调的是'不要恐慌'和‘立即备份数据库’必须是你的下两个步骤。
完成后,运行
DBCC CHECKDB (YOURDBNAME) WITH ALL_ERRORMSGS, NO_INFOMSGS
然后将输出返回给我们/serverfault,如果幸运的话,这只是一个损坏的非聚集索引。