背景

当我们使用SQL Server 进行数据库操作时,经常会把 Table 的 ID 设置成主键自增 PRIMARY KEY IDENTITY,但是这样做存在一个问题就是 当我们删除一行数据后,再次添加后会看到ID的顺序不连续,如下所示。

查询一下:

在这里插入图片描述
当我们删除 PersonId=2 的值后 ,添加一条 wangwu 的数据 后 PersonId=3 不是 PersonId=2

在这里插入图片描述
解决方法

dbcc checkident('table_name',reseed,new_reseed_value)
dbcc checkident('Person',reseed,1)

参数

table_name

是要检查其当前标识值的表的名称。指定的表必须包含标识列。表名必须遵循标识符规则。必须分隔两个或三个部分名称,例如"Person.AddressType"或[Person.AddressType]。

NORESEED

指定不应更改当前标识值。

RESEED

指定应更改当前标识值。

new_reseed_value

是要用作标识列的当前值的新值。

WITH NO_INFOMSGS

禁止显示所有信息性消息。

高阶语法

DECLARE @A INT
SET @A=(SELECT TOP 1 PersonId FROM Person ORDER BY PersonId DESC)
dbcc checkident('Person',reseed,@A)
insert into Person values('wangwu','My name is wangwu')
Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐