“SELECT TOP N”返回错误结果

swo*_*ing 7 sql-server-2005 sql-server

假设我有一张foo类似于:

ident int, primaryKey, auto_increment
someNumber int
statusId int
...
Run Code Online (Sandbox Code Playgroud)

someNumber除少数特殊情况外,其中该列等于ident。(在那些特殊情况下,someNumber总是等于前一个ident)。

我看到了一些问题,这些问题看起来像这样的查询SELECT TOP 10 ident, someNumber FROM foo WHERE statusId=@desiredStatusId ORDER BY someNumber会返回错误的 10 条记录。记录都有正确的 statusId,但随机有一个不正确someNumber。例如:

ident        someNumber
-------      ----------
1234567      1234567
1234700      1234700
1234568      1234568
1234569      1234569
1234570      1234570
...          ...
Run Code Online (Sandbox Code Playgroud)

什么可能导致此查询间歇性地返回错误结果?

Bre*_*zar 5

损坏的索引可以做到。您是否对该数据库运行了 DBCC CHECKDB?