我看起来很高和很低,但我找到的每个答案在答案中都是模糊的。那么对于SQL ID @@IDENTITY
或SCOPE_IDENTITY
来说真正更好的是什么,为什么更好?使用一个而不是另一个更好。
答案 0 :(得分:0)
比较
@@IDENTITY
它返回在所有范围内为当前会话中的任何表生成的最后一个标识值。
让我解释一下......假设我们在表上创建一个插入触发器,在另一个表中插入一行并生成一个标识列,然后@@IDENTITY
返回由触发器创建的标识记录。
SCOPE_IDENTITY
它返回为当前会话中的任何表和当前范围生成的最后一个标识值。
让我解释一下......假设我们在表上创建一个插入触发器,在另一个表中插入一行并生成一个标识列,然后SCOPE_IDENTITY结果不受影响但是如果触发器或用户定义的函数受到影响产生值的同一个表返回该身份记录,然后SCOPE_IDENTITY返回由触发器或用户定义的函数创建的身份记录。
IDENT_CURRENT
它返回在任何会话和任何范围内为特定表生成的最后一个标识值。
换句话说,我们可以说它不受范围和会话的影响,它只依赖于特定的表并返回在任何会话或范围中生成的与表相关的标识值。