2016-10-10 86 views
0

我创建了一个名为公司的数据库和一个名为EmployeesTD表忘了自动增量添加到我的雇员行,我该如何更新我的表中添加自动增量SQL更新/更改或插入?

+0

有没有在表中的数据? – VDK

+1

我相信你可以删除tho专栏并重新添加它作为标识并让它自动填充。 – Igor

回答

0

1)用一个临时名称,并自动创建新表增量场

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

3)删除旧表

4)重命名新表,它原来的名字

(不要忘记添加你的索引,如果你有任何。加入他们算账,如果你这样做,以避免不必要的索引重建。)

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 

终于添加索引,如果表,重命名虚拟原始

我会用第二种方法去具有大数据,因为第一次操作可能会完全锁定表格

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 
0
ALTER TABLE Table_name MODIFY COLUMN col_name INT auto_increment