sql server在sql中获取上一条sql插入记录的信息(id)

本文介绍了在SQL Server 2008中如何在执行插入操作后获取新生成的ID。通过两种方式,一是使用OUTPUT关键字配合临时表,二是利用@@IDENTITY函数,详细阐述了各自的适用场景和可能存在的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1)情况:主从表同时插入数据时,所需要的事务控制

2)方案:在sql中控制(这个也可以在java原生代码或者spring中控制,但最终还是调用了数据库自身的事务控制)

3)数据库:sql server2008

4)数据库解决方式:(大致分为两种)

表结构:(图一)

4.1)方式一(SQL SERVER2005后支持):在insert语句中,通过output关键字,将对应的信息输出,语法:output inserted.对应表的字段

代码:(可以输出多个,通过逗号分隔即可,但又缺陷,不能在后续的sql语句中获取到该值)

insert into ApplyFlowBindExcDept(BindId,StepNo,Remark,DeptId,DeptName) 
output inserted.ExcDeptId values(1,1,'b',1,'a')

效果:(图二)

弥补:通过临时表,存储对应的值,再在后续sql中操作临时表

代码:

declare @temp table(ExcDeptId int)
insert into ApplyFlowBindExc
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值