SQL Server 自增ID重置(从1开始重新排列)

方法一:适用于单行数据的ID调整
dbcc checkident(‘表名’,reseed,X) [X为0, 1, 2, 3…]

dbcc checkident 命令用于检测当前的标识值,返回当前标识值。这里的 reseed 用于重新设定设置当前标识值。

示例:

删除部分内容后,当前表格的自增id为2,插入新的内容后id将为3

运行代码:

dbcc checkident('表名',reseed,0)

返回: 【正在检查标识信息: 当前标识值为“0”。】(通常需要运行2次,第一次返回当前标识值,第二次运行才会返回reseed后的标识值)。

插入新的内容后,id值重新回到了1!

方法一小结:
1、标识值 = 新增id - 1
2、reseed后的X值不一定为0,可以根据实际情况调整。例如:id=2 缺失了,可以设置X=1
3、此方法不会直接更新当前表中的其他id值,不适用于大面积的修改 (自动重置所有id)。解决方案:参见方法二

**方法二:**全表的ID重置
1、复制当前表中所有列名至新表(包括自增id)

select * into 新表名 from 当前表 where 1=2

这里的where给定任意不成立的条件即可,目的是filter掉所有的表格内容。注意:此处新表名为数据库中目前不存在的新表格。

2、复制当前表中内容至新建表格(不包括自增id的内容)

insert into 新表名 select 列名1,列名2,列名...(除自增id外所有列) from 当前表 

注意:此处用的新表名在第一步完成后已被创建,故使用insert into来复制数据。
3、Well Done!

  • 0
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值