因此,我们假设您有一张患有主键IDENTITY(1,1)的患者表。通过使用@@ Identity,我们如何避免两个人同时挽救新患者的竞争状况?显然,不会创建Patient表中的重复ID,但是如果应用程序需要其中一个插入的患者的ID来更新另一个表中的记录,该怎么办?我们怎么知道如果同时插入了@@ Identity,那么@@ Identity不会获得另一条记录的ID?
或者是否有避免这种情况的最佳做法?
JamesNT
答案 0 :(得分:2)
是的,有最好的做法。请勿使用insert
。
获取OUTPUT
语句中分配的标识值的最安全方法是使用{{1}}子句。您应该从documentation开始。
这有很多好处:
答案 1 :(得分:1)
@@ IDENTITY不会导致竞争条件,但这也不是最佳做法。您应该使用SCOPE_IDENTITY。