0
What is the difference between scope_identity() and current_identity()?

Scope_identity 和当前 _identity 都相似,它会返回表中生成的最后一个标识值。Scope_Identity 将返回当前范围内的表中的标识值

这个问题的定义是否正确?

4

2 回答 2

1

IDENT_CURRENT 类似于 SQL Server 2000 标识函数 SCOPE_IDENTITY 和 @@IDENTITY。所有三个函数都返回最后生成的标识值。

但是,在每个函数中定义 last 的范围和会话不同:

  • IDENT_CURRENT 返回为任何会话和任何范围内的特定表生成的最后一个标识值。

  • @@IDENTITY 返回为当前会话中的任何表在所有范围内生成的最后一个标识值。

  • SCOPE_IDENTITY 返回为当前会话和当前范围中的任何表生成的最后一个标识值。

来源

于 2013-10-05T06:26:39.033 回答
0

@@身份

它返回在所有范围内为当前会话中的任何表生成的最后一个标识值。

让我解释一下……假设我们在表上创建了一个插入触发器,该触发器在另一个表中插入一行并生成一个标识列,然后@@IDENTITY 返回由触发器创建的标识记录。SCOPE_IDENTITY

它返回为当前会话和当前范围中的任何表生成的最后一个标识值。

让我解释一下...假设我们在表上创建一个插入触发器,该触发器在另一个表中插入一行并生成一个标识列,那么 SCOPE_IDENTITY 结果不受影响,但如果触发器或用户定义的函数在同一张表上受到影响产生的值返回该身份记录,然后 SCOPE_IDENTITY 返回由触发器或用户定义的函数创建的身份记录。IDENT_CURRENT

它返回为任何会话和任何范围内的特定表生成的最后一个标识值。

换句话说,我们可以说它不受作用域和会话的影响,它只依赖于特定的表,并返回在任何会话或作用域中生成的与表相关的标识值。

在这里找到

于 2013-10-05T06:26:58.560 回答