SQL Server将自动增量主键添加到现有表
作为标题,我有一个现有的表已经填充了150000条记录。 我添加了一个Id列(当前为空)。
我假设我可以运行一个查询来用增量数填充此列,然后设置为主键并打开自动增量。 这是继续进行的正确方法吗? 如果是这样,我如何填写最初的数字?
否 - 你必须以相反的方式来做:将它作为INT IDENTITY
正确添加 - 当你这样做时它将被填充身份值:
ALTER TABLE dbo.YourTable
ADD ID INT IDENTITY
然后你可以把它作为主键:
ALTER TABLE dbo.YourTable
ADD CONSTRAINT PK_YourTable
PRIMARY KEY(ID)
或者如果你喜欢一步到位:
ALTER TABLE dbo.YourTable
ADD ID INT IDENTITY
CONSTRAINT PK_YourTable PRIMARY KEY CLUSTERED
你不能“打开”IDENTITY:这是一个表重建。
如果您不关心数字顺序,那么您应该一次添加带有IDENTITY的列NOT NULL。 150k行不是很多。
如果您需要保留一些号码顺序,请相应地添加号码。 然后使用SSMS表设计器设置IDENTITY属性。 这使您可以生成一个脚本,它将为您执行列删除/添加/保留编号/重新编号。
我遇到了这个问题,但无法使用标识列(出于各种原因)。 我解决了这个问题:
DECLARE @id INT
SET @id = 0
UPDATE table SET @id = id = @id + 1
从这里借用。
链接地址: http://www.djcxy.com/p/94429.html上一篇: SQL Server add auto increment primary key to existing table