如何在没有create或insert或cte的情况下生成与插入的行号相同的行号

时间:2013-07-25 07:21:56

标签: sql sql-server sql-server-2008-r2

我有这个脚本:

Create table #temp (id int,name varchar(10),city varchar(10),sal int)
Insert into #temp
Select 2,'kishor','hyd', 100
Union all
Select 3,'kumar','sec', 200
Union all
Select 4,'santosh','kp', 300
Union all
Select 1,'sudeep','myp', 300

现在我想使用单个select语句生成与不使用create或insert或CTE或Update命令插入的数据相同的行号。 因此,即使按任何顺序排序后,行号列也不应更改其值

1 个答案:

答案 0 :(得分:0)

您应该在表中添加自动增量字段以保存有关插入订单的信息。 然后使用例如ROW_NUMBER()来获得一个rownumber:

select #temp.*,
       ROW_NUMBER() over (order by <your autoincrement field here> ) as RowNumber
       from #temp