I have this code:
ALTER TABLE FishSticks
ADD MyNewIdentityColumnId INT IDENTITY(1,1) NOT NULL
SET IDENTITY_INSERT FishSticks ON
UPDATE FishSticks
SET MyNewIdentityColumnId = MyOldColumnId
However it says:
Cannot update identity column ‘MyNewIdentityColumnId’.
I assume this is due to SQL Azure, but I didn’t have much success googling. It seems that changing a column to be an identity while preserving data is a huge difficulty.
SET IDENTITY_INSERT only works for INSERTS and that error is not specific to SQL Azure. You’ll get the same error on SQL Server/Express
to go around the issue, SET IDENTITY_INSERT to ON, reinsert all the column values from the existing row whose identity value you want to replace with a new value, SET IDENTITY_INSERT OFF, then delete the previous row.