如何在SQLazure中更新标识列?有可能吗



我有这个代码:

ALTER TABLE FishSticks
ADD MyNewIdentityColumnId INT IDENTITY(1,1) NOT NULL
SET IDENTITY_INSERT FishSticks ON
UPDATE FishSticks 
SET MyNewIdentityColumnId = MyOldColumnId

但是上面写着:

无法更新标识列"MyNewIdentityColumnId"。

我想这是由于SQL Azure,但我在谷歌上没有太大成功。在保留数据的同时,将列更改为身份似乎是一个巨大的困难。

SET IDENTITY_INSERT仅适用于INSERTS,该错误不是SQL Azure特有的。在SQLServer/Express 上也会出现同样的错误

若要解决此问题,请将SET IDENTITY_INSERT设置为ON,重新插入要用新值SET IDENTITY_INSERT OFF替换其标识值的现有行中的所有列值,然后删除前一行。

我从Herve Roggero那里找到了这个可能的解决方案,他基本上提供了一种关闭ID,然后添加行,然后重新打开ID的方法

相关内容

最新更新