我的表中有一行似乎已损坏。它有一个名为 ID 的身份字段,我可以选择 ID < 337 或 ID > 337 的位置,但不能选择 ID = 337。
我在数据库、表和 PK 索引(表上唯一的索引)上运行了 DBCC CHECKTABLE 和 DBCC CHECKDB,但没有找到任何东西。
我也尝试删除并重新创建索引,但这个执行只是挂起,几分钟后就再也没有回来。重建也失败了,或者说它只是挂起。
我已经创建了一个包含除 337 之外的所有记录的新表,因此我可以将其恢复到几乎正常的状态,但我想知道是否应该采取任何措施来识别和解决问题。
更新:我无法在不同字段的表中添加第二个索引,因为我尝试时它超时。
更新 2:我无法重命名表,所有这些操作都显示 BlkBy -2,我不认识。
谢谢!
您是否尝试过完整备份并还原到不同的数据库?
问题是孤立的分布式事务。这是我解决它的方法: