在IGNORE_DUP_KEY = ON的重复插入上,PK没有自动增量

entity-framework sqlbulkcopy sql-server

我设置了IGNORE_DUP_KEY = ON,因此当我们尝试插入大量数据时没有警告。但是,对于每个重复行,主键确实会增加,因此当您有20个重复行之后,可以从Id 100转到120。有没有办法让它在没有手动设置值的情况下继续在101?我正在使用SqlBulkCopy和Entity Framework,我对SQL查询不感兴趣来解决这个问题(例如使用NOT EXISTS)。当然,我们可以先检查记录是否已经存在,但我们不希望出于性能原因。

一般承认的答案

如果您需要连续的身份值,那么IDENTITY不适合您。绝对不能保证身份值不会丢失。您的情况不是发生这种情况的唯一情况。

您自己管理ID(例如,使用序列;不容易集成到批量加载中)或放弃具有不间断ID的要求。



许可下: CC-BY-SA with attribution
不隶属于 Stack Overflow
这个KB合法吗? 是的,了解原因
许可下: CC-BY-SA with attribution
不隶属于 Stack Overflow
这个KB合法吗? 是的,了解原因