你如何更新SQL azure中的标识列?可能吗?

时间:2012-02-09 16:02:26

标签: azure-sql-database

我有这段代码:

ALTER TABLE FishSticks
ADD MyNewIdentityColumnId INT IDENTITY(1,1) NOT NULL

SET IDENTITY_INSERT FishSticks ON

UPDATE FishSticks 
SET MyNewIdentityColumnId = MyOldColumnId

然而它说:

  

无法更新标识列'MyNewIdentityColumnId'。

我认为这是由于SQL Azure,但我没有太多成功的谷歌搜索。似乎在保留数据的同时将列更改为标识是一个巨大的难题。

2 个答案:

答案 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。