只是一个普遍的问题。 我有一个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:如果没有,我该怎么办?
答案 0 :(得分:1)
不,你不要担心。在其他情况下,您可以在IDENTITY范围内获得“漏洞”。例如,如果启动事务,则在表中插入100,000行,然后回滚该事务 - 那些IDENTITY值就会消失。这不是你应该关注的事情。