Sql server 标识列是在应用order by子句之前还是之后自动递增的?
我有一个具有标识列的临时表。此表中有多个其他表的插入项。然而,在其中一个insert中,我需要按照使用orderby子句的特定顺序向其中插入行。在对临时表中的行进行排序之前还是之后应用自动增量 谢谢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
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,以显示您正在执行的操作,我们可能能够回答此问题。:)