4

证明

在上图中,您可以看到我有一个表,当我从中查询一个字段的最大值时,我会根据 where 子句得到不同的结果,其余查询似乎被排除为无关紧要。

后端是 MSDE 2000,前端是用 VB.NET 2008 编写的应用程序,使用通过 VPN 连接到 MSDE 实例的 SSMS 2008R2 执行验证。

这是一个来自应用程序开发的封闭系统,但是如果我能纠正造成这种情况的任何原因,我相信数据库和应用程序都会恢复运行。

问题是当它请求 Max([record_index]) + 1 其中 [station_id] = 10 时,该值作为该表中已经存在的记录出现,并且由于唯一约束而插入失败.

4

1 回答 1

1

PK 索引的重新索引解决了该问题,并使上述对 Max([record_index]) 的查询返回与 Max([record_index]) 相同的数字 WHERE... 返回相同的数字,因为它们应该。所以此时索引损坏是唯一合乎逻辑的答案。DB引擎已经12岁了,这是我们唯一一次发生过,我猜我只能接受它

于 2012-06-05T00:54:49.363 回答