SQL Update / Alter或Insert?

时间:2016-10-10 12:59:07

标签: sql-server

我创建了一个名为Company的数据库和一个名为EmployeesTD的表,忘了将自动增量添加到我的EmployeeID行,如何更新我的表以添加自动增量

4 个答案:

答案 0 :(得分:0)

1)使用临时名称和自动增量字段

创建新表

2)将旧表中的所有数据移动到新表中(使用identity_insert)

3)放下旧桌子

4)将新表重命名为原始名称

(如果你有任何索引,别忘了添加你的索引。如果你这样做,你可以添加它们以避免不必要的索引重建。)

答案 1 :(得分:0)

alter table t1
add somename int identity(1,1)

或者

create table dummytable 
(
id int identity(1,1)
somecols --

)

insert into dummytable
select colnames from orginaltable

最后添加索引并将dummy重命名为原始

如果表有大量数据,我会采用第二种方法,因为第一次操作可能会完全锁定表

答案 2 :(得分:0)

您可以运行此ALTER TABLE查询

ALTER TABLE EmployeesTD ADD id INT IDENTITY(1,1)

即使您在EmployeesTD表中有记录,上述语句也会填充每行的唯一值

使用Identity函数的另一种方法

-- 1. create a temporary table 
SELECT IDENTITY(int, 1, 1) AS id,
       *
INTO   temp_EmployeesTD
FROM   EmployeesTD

-- 2. drop the orginal table
DROP TABLE EmployeesTD

-- 3. rename the temporary table to orginal table
EXEC Sp_rename
  'temp_EmployeesTD',
  'EmployeesTD' 

-- 4. Recreate the indexes if any

答案 3 :(得分:0)

ALTER TABLE Table_name MODIFY COLUMN col_name INT auto_increment