SQL Server 2008 R2を使用していて、id
列が。のテーブルがありますidentity(1,1)
。id列で並べ替えられたクエリを取得する場合は、使用する必要がOrder By ID
あるか、不要である必要があります。
編集: ID列に一意のクラスター化インデックスがあります。このインデックスは、私のクエリがデフォルトでidでソートされることを保証しますか。
SQL Server 2008 R2を使用していて、id
列が。のテーブルがありますidentity(1,1)
。id列で並べ替えられたクエリを取得する場合は、使用する必要がOrder By ID
あるか、不要である必要があります。
編集: ID列に一意のクラスター化インデックスがあります。このインデックスは、私のクエリがデフォルトでidでソートされることを保証しますか。
デフォルトのソート順はありません。テーブルにクラスター化インデックスがある場合でも、その順序で結果が得られるとは限りません。
句を希望のソート順で指定する必要があります。ORDER BY
ORDER BY が省略された場合 - 順序は予測できません。このような SQL ステートメントは明示的な順序を要求しないため、SQL Server は準備が整ったときに結果を返すことができます。
つまり、次のことを意味します。
順序が実行計画に完全に依存していること。
一部のフィルター条件で返される順序は、他の場合には異なる可能性があります
一部の選択では、他のカバー インデックスを使用できます (これは ID 順ではありません)。そして、それは「予期しない」順序になります。
Ordered listを取得する必要がある場合は、明示的な ORDER BY 句を使用する必要があります。その後、順序について確認できます。その時だけ。
「ORDER BY」を使用しない場合、テーブルの順序は保証されません。