SQL Server反复使用已删除的标识PK

时间:2012-12-13 07:16:10

标签: sql-server sql-server-2008 tsql

只是一个普遍的问题。 我有一个IDENTITY PK的表,它与任何表都没有连接。 表中还有另一个也是唯一的FK。

我在某个条件下对该表运行DELETE命令。

我可以使用自动插入的下一个PK ID将任何新记录插入到表中。

但PK中没有重复使用ID号。

如果我运行类似

的话
DECLARE @max_PKid BIGINT;
SET @max_PKid = (SELECT ISNULL(MAX(PKid), 0) FROM Table WHERE FKid=@somevalue);
DBCC CHECKIDENT ('Table', reseed, @max_PKid)

在DELETE之后,下一次INSERT会出现访问冲突问题

问题1:在不使用DBCC CHECKIDENT的情况下执行DELETE / INSERT后,表中的无序(比方说,未种子)PKid是否一般都是良好的做法?我应该关心他们吗?

问题2:如果没有,我该怎么办?

1 个答案:

答案 0 :(得分:1)

不,你不要担心。在其他情况下,您可以在IDENTITY范围内获得“漏洞”。例如,如果启动事务,则在表中插入100,000行,然后回滚该事务 - 那些IDENTITY值就会消失。这不是你应该关注的事情。