sql server 2005:使用@@ identity是否安全?

时间:2009-05-19 12:31:12

标签: sql-server identity unsafe

我有一个程序,我在员工table.nad中使用@@ identity来插入记录?当多个用户同时调用此过程时,可能会返回同时插入的其他员工的身份。因为系统没有锁定身份?

- 代码 - 对于empid列的身份 插入员工(姓名)值('sahil'); return @@ identity

参考sql server 2005:is it safe to use @@identity? 锁定身份问题

2 个答案:

答案 0 :(得分:8)

您应该使用SCOPE_IDENTITY()代替。但是,@@ IDENTITY是指当前连接,因此其他用户不会对您产生影响,但还有其他问题需要考虑。

更多信息here

答案 1 :(得分:3)

@@ identity不安全使用。如果表具有一个插入到不同表的触发器,其标识是将返回的值。切勿使用它来获取刚刚插入的idnetity值。您可能认为我现在没有触发器,但您永远不知道何时可以添加一个触发器,您可以花很长时间才能意识到您的数据无可救药地被搞砸了。