gpt4 book ai didi

sql - 获取新的 SQL 记录 ID

转载 作者:行者123 更新时间:2023-12-02 09:42:06 26 4
gpt4 key购买 nike

如何取回刚刚插入的新记录的自动生成的 ID?(使用ASP经典和MSSQL 2005)

最佳答案

SELECT SCOPE_IDENTITY() 

使用 @@IDENTITY 可能会产生意想不到的结果,因此请小心使用该结果。将记录插入到其他表的触发器将导致 @@IDENTITY 值发生更改 - 其中 SCOPE_IDENTITY() 将为您提供当前范围内的最后一个标识。

这是一个示例,它将显示 @@IDENTITY 和 SCOPE_INSERT() 之间的区别以及它们如何返回不同的值。

use tempdb
go
create table table1
(ID int identity)
go
create table table2
(ID int identity(100, 1))
go
create trigger temptrig
on table1
for insert
as
begin

insert table2
default values;

end
go
insert table1
default values;
select SCOPE_IDENTITY(),
@@IDENTITY

这里没有人讨论的另一个选项是使用 SQL 2005 中的 OUTPUT 子句。在这种情况下,您只需将输出子句添加到插入中,然后从代码中捕获该记录集。当插入多条记录而不是仅仅 1 条记录时,这很有效...

use tempdb
go
create table table1
(ID int identity)
go
insert table1
output inserted.ID
default values;
--OR...
insert table1
output inserted.$identity
default values;

关于sql - 获取新的 SQL 记录 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/590927/

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