在上图中,您可以看到我有一个表,当我从中查询一个字段的最大值时,我根据 where 子句得到不同的结果,其余查询似乎排除了无关紧要。
后端是 MSDE 2000,前端是用 VB.NET 2008 编写的应用程序,使用通过 VPN 连接到 MSDE 实例的 SSMS 2008R2 执行验证。
这是一个来自应用程序开发的封闭系统,但是如果我能纠正导致此问题的任何原因,我相信数据库和应用程序都将恢复运行。
问题是当它请求 Max([record_index]) + 1 其中 [station_id] = 10 时,该值作为该表中已存在的记录出现,并且由于唯一约束而导致插入失败.
最佳答案
PK 索引的重新索引解决了这个问题,并使上述对 Max([record_index]) 的查询返回与 Max([record_index]) 相同的数字 WHERE... 返回相同的数字,因为它们应该。所以此时索引损坏是唯一合乎逻辑的答案。 DB 引擎已经 12 年了,这是我们唯一一次遇到这种情况,我想我只能接受它
关于sql - 可能的索引损坏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10887825/