我有下表有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
答案 0 :(得分:6)
此:
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
列,请使用:
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
答案 1 :(得分:0)
更好地改变表ADN添加身份列
ALTER TABLE TABLENAME添加SRNO IDENTITY(1,1)