作为标题,我有一个已经填充了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

其他回答

试试下面的代码:

DBCC CHECKIDENT ('settings', RESEED, 0) 

修改表table_name,增加列ID 这可能很有用

当我们在现有表中添加一个标识列时,它将自动填充,而不需要手动填充。

Alter table /**粘贴tabal的名称**/ 添加id int (1,1)

删除/**,粘贴tabal的名称**/ id在哪里

(

选择a.d id FROM /**粘贴tabal的名字/作为a 左外连接( SELECT MIN(id) as id 从/粘贴tabal的名称/ 集团 /粘贴列c1,c2 ....* * /

) as t1 
ON a.id = t1.id

在t1。id为空

)

Alter table /**粘贴tabal的名称**/ DROP列id

ALTER TABLE table_name ADD temp_col INT IDENTITY(1,1) 
update