Sql server 标识列是在应用order by子句之前还是之后自动递增的?

Sql server 标识列是在应用order by子句之前还是之后自动递增的?,sql-server,auto-increment,Sql Server,Auto Increment,我有一个具有标识列的临时表。此表中有多个其他表的插入项。然而,在其中一个insert中,我需要按照使用orderby子句的特定顺序向其中插入行。在对临时表中的行进行排序之前还是之后应用自动增量 谢谢 CREATE TABLE #tempTable ( SeqNo INT IDENTITY(1, 1), Column1 INT, Column2 INT, Column3 INT ) INSERT #tempTable ( Column1, Co

我有一个具有标识列的临时表。此表中有多个其他表的插入项。然而,在其中一个insert中,我需要按照使用orderby子句的特定顺序向其中插入行。在对临时表中的行进行排序之前还是之后应用自动增量

谢谢

CREATE TABLE #tempTable
 (
    SeqNo INT IDENTITY(1, 1),
    Column1 INT,
    Column2 INT,
    Column3 INT
)

INSERT #tempTable
 (
    Column1,
    Column2,
    Column3
)
SELECT  W, 
        X, 
        Y
FROM    dummyTable
ORDER BY Z
我想我的问题是SeqNo是否会以这样的方式自动递增:Z值最小的行得到1,次小的行得到2,依此类推


如果代码示例有点邋遢,请道歉

SQL Server引擎团队:

使用SELECT with ORDER BY填充行的INSERT查询可以保证标识值的计算方式,但不能保证行的插入顺序

它们阐明了注释中“插入行的顺序”的含义:

是的,标识值将按照ORDER by建立的顺序生成。如果标识列上存在聚集索引,则值将按索引键的逻辑顺序排列。这仍然不能保证插入的物理顺序。索引维护是一个不同的步骤,例如也可以并行进行。因此,您可以根据ORDERBY子句生成标识值,然后将这些行提供给将执行维护任务的聚集索引插入操作符


尝试发布一些代码/sql,以显示您正在执行的操作,我们可能能够回答此问题。:)