作为标题,我有一个已经填充了150000条记录的现有表。我添加了一个Id列(目前为空)。
我假设我可以运行一个查询,用增量数字填充这个列,然后设置为主键并打开自动增量。这是正确的做法吗?如果是,我怎么填入初始数字?
作为标题,我有一个已经填充了150000条记录的现有表。我添加了一个Id列(目前为空)。
我假设我可以运行一个查询,用增量数字填充这个列,然后设置为主键并打开自动增量。这是正确的做法吗?如果是,我怎么填入初始数字?
当前回答
试着这样做(先在测试台上):
USE your_database_name GO WHILE (SELECT COUNT(*) FROM your_table WHERE your_id_field IS NULL) > 0 BEGIN SET ROWCOUNT 1 UPDATE your_table SET your_id_field = MAX(your_id_field)+1 END PRINT 'ALL DONE'
我根本没有测试过这个,所以要小心!
其他回答
修改表table_name,增加列ID 这可能很有用
如果这个列在你的表中已经存在,并且它是空的,你可以用这个命令更新这个列(替换id, tablename和tablekey):
UPDATE x
SET x.<Id> = x.New_Id
FROM (
SELECT <Id>, ROW_NUMBER() OVER (ORDER BY <tablekey>) AS New_Id
FROM <tablename>
) x
ALTER TABLE table_name ADD temp_col INT IDENTITY(1,1)
update
试着这样做(先在测试台上):
USE your_database_name GO WHILE (SELECT COUNT(*) FROM your_table WHERE your_id_field IS NULL) > 0 BEGIN SET ROWCOUNT 1 UPDATE your_table SET your_id_field = MAX(your_id_field)+1 END PRINT 'ALL DONE'
我根本没有测试过这个,所以要小心!
通过设计器你可以设置identity (1,1) 右击TBL => design =>在部分左击(右击)=>属性=>在标识列选择#列
属性
idendtity列