我有一个插入到表中的存储过程(其中有一个不是主键的标识列 - 最初使用日期/时间插入 PK 以生成唯一值)。
然后我们使用 SCOPEIDENTITY() 来获取插入的值,然后有一些逻辑可以根据该值生成主键字段值,然后将其更新回表中。
在某些情况下,存储过程被多个进程同时调用,导致“违反 PRIMARY KEY 约束...”错误。
这似乎表明标识列允许为多个记录插入相同的数字。
第一个问题——这怎么可能?
第二个问题 - 如何停止它......目前没有错误处理,所以我将添加一些 try/catch 逻辑 - 但想完全理解问题以正确处理