方法一:适用于单行数据的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!