我有这个代码:
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。在 SQL Server/Express 上你会得到同样的错误
要解决此问题,请将 SET IDENTITY_INSERT 设置为 ON,重新插入要用新值替换其标识值的现有行中的所有列值,设置 IDENTITY_INSERT OFF,然后删除上一行。