我有这段代码:
ALTER TABLE FishSticks
ADD MyNewIdentityColumnId INT IDENTITY(1,1) NOT NULL
SET IDENTITY_INSERT FishSticks ON
UPDATE FishSticks
SET MyNewIdentityColumnId = MyOldColumnId
然而它说:
无法更新标识列'MyNewIdentityColumnId'。
我认为这是由于SQL Azure,但我没有太多成功的谷歌搜索。似乎在保留数据的同时将列更改为标识是一个巨大的难题。
答案 0 :(得分:3)
SET IDENTITY_INSERT仅适用于INSERTS,并且该错误不是特定于SQL Azure的。您将在SQL Server / Express上获得相同的错误
要解决此问题,请将SET IDENTITY_INSERT设置为ON,将要替换其标识值的现有行中的所有列值重新插入新值SET IDENTITY_INSERT OFF,然后删除上一行。
答案 1 :(得分:0)
我从Herve Roggero那里找到了这个Possible solution,他基本上提供了一种方法来关闭ID,然后添加行,然后重新打开ID。