我创建了一个名为Company的数据库和一个名为EmployeesTD的表,忘记向我的EmployeeID行添加自动增量,如何更新我的表以添加自动增量
发布于 2016-10-10 13:04:58
1)创建具有临时名称和自动增量字段的新表
2)将旧表中的所有数据移动到新表(使用identity_insert)
3)放下那张旧桌子
4)将新表重命名为原来的名称
(如果有索引,请不要忘记添加索引。如果为了避免不必要的索引重建,请在后面添加它们。)
发布于 2016-10-10 13:07:33
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最后,添加索引并将虚拟重命名为原始
如果表有大量数据,我将采用第二种方法,因为第一次操作可能会完全锁定表。
发布于 2016-10-10 13:08:24
只需运行此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 anyhttps://stackoverflow.com/questions/39958878
复制相似问题