【发布时间】:2015-09-02 20:46:23
【问题描述】:
我有一个表格,其中填充了数据,其中一列 - TrackingNumber - 是一个整数值。我收到了将其更改为自动增量并让它在 1000000 处开始标识种子的请求。我知道我无法将列更改为现有数据表中的标识列,因此我有两个选择:要么创建一个全新的表,然后将旧表中的数据移动到该新表中,或者添加一个新的标识列并使用旧列中的数据对其进行更新。
问题是我需要保留 TrackingNumber 列中的所有现有值。我尝试了以下方法:
1) ALTER TABLE [dbo].[Table1]
ADD [TrackingNumber2] [bigint] IDENTITY (1000000, 1) NOT NULL
2) UPDATE [dbo].[Table1]
SET [TrackingNumber2]=[TrackingNumber]
3) ALTER TABLE [dbo].[Table1]
DROP COLUMN [TrackingNumber]
GO
4) EXEC sp_rename 'Table1.TrackingNumber2', 'TrackingNumber','COLUMN'
第 2 步出现错误 - 使用旧列中的值更新新列:“无法更新标识列 'TrackingNumber2'”
谁能推荐一个解决方法?
【问题讨论】:
标签: sql-server azure-sql-database