gpt4 book ai didi

sql - 如何获取插入行的标识?

转载 作者:行者123 更新时间:2023-12-01 16:14:09 25 4
gpt4 key购买 nike

我该如何获取插入行的IDENTITY

我了解 @@IDENTITYIDENT_CURRENTSCOPE_IDENTITY,但不了解它们各自的含义或影响。

有人可以解释一下这些差异以及我何时使用它们吗?

最佳答案

  • @@IDENTITY返回为当前 session 中所有范围内的任何表生成的最后一个标识值。 这里需要小心,因为它是跨范围的。您可以从触发器获取值,而不是当前语句。

  • SCOPE_IDENTITY()返回为当前 session 和当前作用域中的任何表生成的最后一个标识值。 一般来说你想使用什么

  • IDENT_CURRENT('tableName')返回为任何 session 和任何范围中的特定表生成的最后一个标识值。这使您可以指定要从哪个表获取值,以防上述两个表不完全满足您的需要(非常罕见)。另外,如@Guy Starbuck提到,“如果您想获取尚未插入记录的表的当前 IDENTITY 值,则可以使用此方法。”

  • OUTPUT clause INSERT 语句的 允许您访问通过该语句插入的每一行。由于它的范围仅限于特定语句,因此它比上面的其他函数更简单。但是,它有点更详细(您需要插入表变量/临时表,然后查询它),即使在回滚语句的错误情况下它也会给出结果。也就是说,如果您的查询使用并行执行计划,那么这是获取标识的唯一有保证的方法(除非关闭并行性)。但是,它在触发器之前执行,不能用于返回触发器生成的值。

关于sql - 如何获取插入行的标识?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42648/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com