临时变量是否维护行的顺序?
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))
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))