sqlserver在不修改表结构的前提下添加ID自动增长

有很多刚开始学习sqlserver数据库的老铁们都碰到过一个问题,就是创建了表又添加了数据然后又忘了把id自动增长了   这个时候(sqlserver如果往表里面添加数据  就不能设置ID自动增长)就不得不把表删除查询创建一个,又或者把表导出来然后在创建表的时候往id上面加identity(1,1),然后把添加语句里面的id都删除了,这就很烦了,好了话不多说,直接上代码

#A是临时表    B是需要复制的表(复制完之后需要把B表删除然后重新创建一个)

C是重新创建的一个新表

--将数据复制到临时表
SELECT * INTO #A  FROM B

--删除数据表
drop table B

--查询创建数据表(并设置标识列)
create table C(
    id int identity(1,1) PRIMARY KEY,
    AreaNo varchar(12) COLLATE Chinese_PRC_CI_AS  NULL,
    Address varchar(30) COLLATE Chinese_PRC_CI_AS  NULL,
    AddrDemo varchar(100) COLLATE Chinese_PRC_CI_AS  NULL,
    ParentAreaNo varchar(12) COLLATE Chinese_PRC_CI_AS  NULL
)

--这里你可以设置标识列允许插入or也可以不允许插入
set identity_insert C on

--将数据从临时表转移过来
insert into C(ID,AreaNo,Address,AddrDemo,ParentAreaNo)
select ID,AreaNo,Address,AddrDemo,ParentAreaNo from #A

--关闭标识列插入
set identity_insert C off

--强制设置标识列的起始值:
DBCC CHECKIDENT (C, RESEED, 1) --强制使标识值从1开始.

出自 https://www.cnblogs.com/skylaugh/archive/2016/04/03/5350615.html

我把需要的部分给摘抄出来了   如果有不懂的地方可以加我QQ一起学习sqlserver数据库  QQ:2476594635

你可能感兴趣的:(sql,sqlserver)