【发布时间】:2020-11-20 03:38:25
【问题描述】:
我有一个主键,当我尝试插入一些数据时,它会自己生成,但问题是它将生成我之前删除的最后一个主键
我想在输入新数据时进行输入,生成的 id 将是 17 而不是 72 等等,我使用的是 SQL SERVER 2008,帮助:{
【问题讨论】:
-
您为什么使用不受支持的 SQL Server 版本?
-
没有简单的方法可以做到这一点。我建议您构建您的应用程序,不要关心该标识符是什么,因为它与表中其他记录的序列相关。这就是大多数应用程序在使用 surrogate keys 时的工作方式/应该工作方式。
-
您可以重置 IDENTITY 值,但主键的目的是唯一标识表中的行。它不需要没有缝隙,也不需要让你的眼睛舒服。
-
不要尝试重置 IDENTITY,根据您问题中的屏幕截图,一旦下一个值达到
72,您就会遇到碰撞错误。 -
你不需要,@RickyRezaMuhammad,所以不是没有办法,而是你不应该这样做。身份只是任意(总是升序)数字;就这样。如果您想要一个顺序值,请在从表中选择时使用
ROW_NUMBER()。
标签: sql sql-server