我的下表有10个唯一的行,BookingID是包含随机数的FK。该数字不必按顺序排列。
BookingID, Description 1000 Foo 3000 Bar 1500 Zoo
我需要插入一个名为ID的顺序索引,该索引从1..x开始
如何在SQL Server 2005中做到这一点?我当时想写一个游标,x = x + 1,但是也许有更好的方法吗?
这是我想要的结果
Id, BookingID, Description 1 1000 Foo 2 3000 Bar 3 1500 Zoo
这:
SELECT ROW_NUMBER() OVER(ORDER BY t.bookingid) AS id, t.bookingid, t.description FROM YOUR_TABLE t
…将产生:
id bookingid description ---------------------------- 1 1000 Foo 2 3000 Bar 3 1500 Zoo
要更新现有id列,请使用:
id
WITH cte AS ( SELECT t.id, ROW_NUMBER() OVER(ORDER BY t.bookingid) AS rank, t.bookingid, t.description FROM YOUR_TABLE t) UPDATE cte SET id = rank