说我有一个包含100行的表和一个自动递增的id
列,我用id = 15
删除了该行。如何用id = 15
而不是id = 101
添加新行?
答案 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