| 我们必须修改数据库并自己管理IDENTITY列(而不是依赖于auto-inc字段)。 我们的解决方案是创建一个\“ Generator \”表,该表具有一个auto-inc字段。我们插入到此表中,然后读取SCOPE_IDENTITY值以获取新ID,例如
insert into NewIDEntity
        (CreationDate)
        select
        GetDate()

select @EntityID = SCOPE_IDENTITY()
我们主要关注以下情况: •将事务1插入到NewID中,并接收101作为要插入到实体表中的新ID。  •在提交之前,事务2将插入到NEWID中,并且还接收101作为新ID(这是因为SCOPE_IDENTITY()将在当前作用域的上下文中返回该ID。原始行尚未提交,因此我们希望值为101) •事务1提交并写入行。 •事务2尝试提交,但是已经写入101,并导致主键冲突,并中止了事务。 但是,在运行此命令时,似乎SCOPE_IDENTITY()由SQL Server处理,即使在READ UNCOMMITTED隔离级别下运行,我们也不会发生冲突。 可以吗?还是我们找不到找不到的陷阱? 谢谢 邓肯