@@IDENTITY在加触发器时返回错误的ID值

表ID是自增的,所以在添加时要查一下,之前是用@@IDENTITY来查,最近在加触发器时发现返回的会是在触发器中插入语句的数据ID值,上网找了下资料,发现是因为@@IDENTITY 将返回在当前会话中的任何作用域内插入的最后一个标识列的值。

也就是说,我在触发器中的插入语句也在它取值的范围内了,把它改成SCOPE_IDENTITY()就好了,因为它返回的是在同一个作用域内发生的最后的插入。

同时,有资料说@@IDENTITY在万条并发时就有出现过错误的现象。

有个注意点:

在插入某些自增表的时候,需要将其打开:
 语法:SET   IDENTITY_INSERT   TableName   ON 

原文地址:https://www.cnblogs.com/qiywtc/p/5387270.html