我使用SQL Server 2008 R2,并将id
列的表格设为identity(1,1)
。如果我想按id列命令查询,请务必使用Order By ID
或不必要。
编辑: 我在ID列上有一个唯一的聚簇索引。这个索引保证我的查询默认按id排序。
答案 0 :(得分:2)
没有默认的排序顺序。即使表具有聚簇索引,也不能保证按该顺序获得结果。
您必须指定所需排序顺序的ORDER BY
子句。
答案 1 :(得分:2)
如果省略ORDER BY,则订单不可预测。因为这样的SQL语句不要求显式顺序,所以SQL Server可以在准备好后返回结果。
这意味着:
订单完全取决于执行计划。
某些过滤条件返回的订单可能会有所不同 情况下
对于某些选择可以使用其他覆盖索引,(不是按ID排序)。这将导致“意外”的订单。
如果我们需要获得有序列表,我们必须使用显式ORDER BY子句。然后我们可以确定订单。只有这样。
答案 2 :(得分:1)
如果未使用“ORDER BY”,则无法保证表格的顺序。