有张报账表Reports,字段有ReportId,ReportUserId,Coutent,PerCount,Re....    其中ReportId为自动编号且为主键     奇怪的是,如果使用Select * from Reports(Select后面或者多跟些字段名),那么顺序是按聚集索来排序
     ReportId
       4
       5
       6
       7     如果使用Select ReportId from Reports,结果为
     ReportId
       5
       4
       6
       7     当然,如果使用order by ,一切正常     怎么会出现这种情况?很奇怪,本来结果以为肯定按聚集索引排序的

解决方案 »

  1.   

    NND,后来重新点开表--索引,随便点点,点了点OK,就恢复正常了,看来Sql Server重新排序了
    但为什么出现上面这种情况呢?
      

  2.   

    一般是的,但是之前也发现有些补丁未打之前是有这种情况的
    2000的SP3之前
    所以最好不要默认表记录有什么次序,想要排序的时候一定加order by
      

  3.   

    --#1.一般来说select * 不排序时,系统会按聚集索引的的顺序排序
    --#2.但系统有它自己的存储方式,所以任何需要排序的情况下,都应该使用order by