select * from #result
を使用して、テーブル内の順序を確認するにはどうすればよいですか? ? select
の順序について保証はありません
ただし、SQL Fiddle では結果が異なります。結果が同じであることを保証したい場合は、主キーを追加します。次に、挿入順序が保証されます:
CREATE TABLE MyTable(Name VARCHAR(50), SortOrder INT)
INSERT INTO MyTable SELECT 'b', 2 UNION ALL SELECT 'c', 3 UNION ALL SELECT 'a', 1 UNION ALL SELECT 'e', 5 UNION ALL SELECT 'd', 4
select top 0 * into result from MyTable;
alter table Result add id int identity(1, 1) primary key;
insert into Result(name, sortorder)
SELECT * FROM MyTable
ORDER BY SortOrder;
私はまだ select * from Result
をするのが嫌いです この後。しかし、はい、SQL Server 2008 と 2012 の両方で正しい順序でそれらを返します。それだけでなく、SQL Server は主キーが適切な順序で挿入されることを保証するため、レコードは正しい順序であることが保証されます。この場合。
しかし 。 . .レコードがページ上で特定の順序になっているからといって、 order by
なしでその順序で取得されるわけではありません