我添加了一个新的标识列,我需要更新它以便id列进入标识列,然后删除旧标识列并重命名标识列,因为您无法将列更改为标识。 / p>
我不知道怎么做,我想我想循环遍历每一行,将其插入到同一个表中,设置identity字段以匹配id字段(使用IDENTITY_INSERT)但我不熟悉循环在SQL中。有什么想法吗?
答案 0 :(得分:1)
你可以使用像这样的临时表:
样本表和数据
create table xx
(
OldID int
)
insert into xx values(10),(20),(30)
将NewID添加为标识并从OldID获取值。
create table xxTmp
(
OldID int,
[NewID] int identity
)
set identity_insert xxTmp on
insert into xxTmp(OldID, [NewID])
select OldID, OldID
from xx
set identity_insert xxTmp off
drop table xx
exec sp_rename 'xxTmp', 'xx'