IDENTITY声明问题

时间:2014-09-18 01:16:20

标签: sql identity-column

问题: 删除某些行后是否可以回滚列的最大值(使用IDENTITY)?

问题: column(id)的值不会重新设置/回滚到列的当前最大值,它会随着最后一次已知的最大值递增。

1 个答案:

答案 0 :(得分:2)

我假设你正在使用SQL Server。

您描述的行为是IDENTITY列按设计工作的方式。新行的值只会递增。这通常用于确保生成值的唯一性。如果删除记录,则会在数字上留下空隙。在TechNet上还有一句话:

  

如果存在经常删除的表的标识列,则标识值之间可能会出现间隙。如果这是一个问题,请不要使用IDENTITY属性。

如果需要,您可以重新设置标识,或者在使用SET IDENTITY_INSERT ON时可以明确地在标识列中输入任何值,但这不是这些列的标准用法。