首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在SQL Server中,如何在批量更新时获取最后插入的记录ID?

在SQL Server中,如何在批量更新时获取最后插入的记录ID?
EN

Stack Overflow用户
提问于 2014-05-29 13:27:37
回答 2查看 874关注 0票数 2

在SQL Server中,我使用批量更新将多条记录插入到表中。如何取回批量更新后正在创建的ID(唯一主键)?

如果我插入一条记录,我可以使用IDENT(tableName)插入最后一条记录。如果我做批量更新,我不确定如何获取。请帮帮忙。

例如,我有一个学生表,其中有角色NO和NAME。角色编号自动递增1,只要我使用java程序将名称插入数据库。我将使用我的java代码中的批量更新一次添加3行。在DB中,它被添加为2、3和4号角色。如何在我的java程序中获取这些新生成的ID,请帮助

在执行after之后,我尝试使用getgeneratedkeys方法获取ids。我有个例外。是否支持批量更新+获取生成的密钥?

EN

回答 2

Stack Overflow用户

发布于 2014-05-29 13:36:46

这将让你捕获你插入到表中的数据--包括你的id。你必须把它们插入到一个临时表中;所以像这样的东西(加上你的表/列名)就可以把你带到那里。

代码语言:javascript
复制
declare @MyNewRoles Table (Name, RoleNo)

insert into tblMyTable
(Name)
Select
    Name
Output
    inserted.Name, Inserted.RoleNo
    into @MyNewRoles
From tblMyTableOfNames

select * from @MyNewRoles
票数 3
EN

Stack Overflow用户

发布于 2014-05-29 13:43:27

如果您不介意向表中添加字段,则可以为每个批处理事务生成一个惟一的ID (例如,随机UUID),并将其存储在表中。

代码语言:javascript
复制
select my_id from my_table where batch_id = ?
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23926270

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档