临时变量是否维护行的顺序?

Does a temp variable maintain the order of rows?

DECLARE @temp_table TABLE (order_no int, username nvarchar(100))

INSERT INTO @temp_table(order_no, username)
   SELECT TOP 10 
       user_id, username
   FROM users
   ORDER BY user_id

SELECT * FROM @temp_table

@temp_table 中的行是否总是有序的?

除非您明确使用 ORDER BY,否则无法保证顺序。

我们不能保证变量顺序的原因table是因为没有默认的主键,所以如果你添加一个自动递增的键作为默认键,那么它将始终遵循此默认密钥的顺序。换句话说,它会按照插入的顺序。

I.E.

DECLARE @temp_table TABLE (tempid int IDENTITY(1,1), order_no int, username nvarchar(100))