如何使自动递增的id列在SQL Server中使用丢失的数字?

时间:2019-03-15 19:37:00

标签: sql sql-server

说我有一个包含100行的表和一个自动递增的id列,我用id = 15删除了该行。如何用id = 15而不是id = 101添加新行?

2 个答案:

答案 0 :(得分:1)

不,不要这样做。

生成的主键用于产生内部使用的唯一值。他们不应该“性感”或漂亮。那不是他们的目的; PK的目的是唯一性。如果您担心特定的值,则表示您正在将暴露于外部世界……这会引起很多危险。

如果您需要一个值来公开,请不要为此使用PK,而应为其创建辅助列。它在世界上的唯一目的是暴露。此值可以使用破折号(如SSN),前缀,后缀等格式。

答案 1 :(得分:0)

如果您有一个带有身份密钥字段的表,则可以使用以下方法:

SET IDENTITY_INSERT YourTableName ON
INSERT INTO YourTableName (ID, Other) VALUES (15, 'Whatever')
SET IDENTITY_INSERT YourTableName OFF