gpt4 book ai didi

sql-server-2008 - 在sql server中获取最后插入的记录的最佳方法

转载 作者:行者123 更新时间:2023-12-04 07:09:15 35 4
gpt4 key购买 nike

大家好,我的表中有一个标识列和一个计算主键列,我需要在将记录插入数据库后立即获取最后插入的记录,所以我编写了以下查询,有人可以告诉我哪个是最好的选择

SELECT
t.[StudentID]
FROM
[tbl_Student] t
WHERE
t.ID = IDENT_CURRENT('tbl_Student')

另一种是使用MAX如下

Select 
MAX(StudentID)
from tbl_Student

从以上两个查询中选择最好的一个。

最佳答案

MAX 和 IDENT_CURRENT ,根据 technet 的说法,它们的行为大致相同,并且两者都同样不可靠。

“IDENT_CURRENT 不受范围和 session 的限制;它仅限于指定的表。IDENT_CURRENT 返回在任何 session 和任何范围内为特定表生成的标识值。有关更多信息,请参阅 IDENT_CURRENT(Transact- SQL)。”

基本上,要返回当前范围内的最后一次插入,无论任何潜在的触发器或来自其他 session 的插入/删除,您都应该使用 SCOPE_IDENTITY。当然,这是假设您首先在与实际插入相同的范围内运行查询。 :)

如果是,您还可以选择简单地使用 OUTPUT 子句将插入的 ID 值获取到表变量/临时表中,然后从那里进行选择。

关于sql-server-2008 - 在sql server中获取最后插入的记录的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21984579/

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