在临时表中插入数据时按排序.不起作用


SELECT S.ColumnName,L.ColumnName ...
INTO #Tempdata
FROM [dbo].[M] M  
LEFT JOIN [dbo].[S] S ON S.PrimaryKey=M.FKey  
LEFT JOIN [dbo].[L] L ON S.FK=L.PK  
ORDER BY S.ColumnName

SQL表表示无序集合。时期

如果你想按顺序选择数据,你需要使用:

order by columnName

在用于选择数据的查询中。

不过,SQL Server确实以一种重要的方式尊重INSERT中的ORDER BY。如果您有一个identity列,那么标识将跟随在ORDER BY之后。这可能很方便。但要获得有序的结果(一致(,您需要在SELECT查询中使用ORDER BY

特别是在tempdb中,它通常用多个文件存储数据,插入的行在不同的文件中被拆分。使用多个线程检索数据(一个线程一个文件更快(将给出混合子集的任何组合,并给人一种行的有序性的印象。

正如前面所说,没有办法在表中对行进行有序存储,这就是SQL有ORDERBY子句的原因!

最新更新