如何修复一个单一的坏logging(或损坏的索引)表?

我在表中有一行似乎是腐败的。 它有一个名为ID的身份字段,我可以selectID <337或ID> 337,而不是ID = 337。

我运行DBCC CHECKTABLE和DBCC CHECKDB上的数据库,表和PK索引(表中唯一的索引),它没有find任何东西。

我也尝试删除和重新创build索引,但这个执行只是挂了,几分钟后再也没有回来。 重build也失败了,或者说只是挂起。

我已经创build了一个除了337以外的所有logging的新表,所以我可以回到几乎正常,但我想知道是否有什么我应该做的,以确定和解决问题。

更新:我无法添加到另一个字段的表上的第二个索引,因为当我尝试时超时。

更新2:我无法重命名表,所有这些行动显示BlkBy -2,我不认识。

谢谢!

你有没有尝试完整的备份和恢复到不同的数据库?

问题是孤立的分布式事务。 以下是我解决它的方法:

SELECT request_owner_guid FROM sys.dm_tran_locks where request_session_id = -2 KILL '<guid from above select>'