sql - 可能的索引损坏?

标签 sql tsql msde

Proof

在上图中,您可以看到我有一个表,当我从中查询一个字段的最大值时,我根据 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/

相关文章:

sql - 连接列而不包括具有空值的列?

sql - EXECUTE @Var 字符限制 SQL Server 2008 R2

32bit-64bit - 带有 Office 64 位的 MS Access DB 引擎(32 位)

sql-server - 如何将 MSDE 数据库复制到 SQL Server 2008 Express?

sql - 无法序列化临时记录类型postgres

SQL 查询在查询中返回数据类型不匹配 - 为什么?

sql - 无法直接转换为十进制值?

windows - Windows Server 2008 支持 MSDE 吗?

sql - 来自另一个表的动态正则表达式搜索字符串

mysql - 慢速SQL查询的特征