为了账号安全,请及时绑定邮箱和手机立即绑定

如何取得批量插入的IDENTITY号码

标签:
算法

 SQL Server,可以使用SCOPE_IDENTITY方法取得最后一笔记录的Identity号码,但是如果想取得批量插入的IDENTITY号码,那得想些

这个SCOPE_IDENTITY就有些困难了,只有把inserted虚拟表导入到一个真实存在的表,临时表或是表变量中,方可解决问题。

 

下面代码,是return最后一笔的IDENTITY号码,

INSERT INTO dbo.Member VALUES('Maik','1','22','','2600')
SELECT SCOPE_IDENTITY() AS [SCOPE_IDENTITY]

 

 如果想一次同时插入多笔记录,它return还是最后一个identity号码,

INSERT INTO dbo.Member VALUES('Maik','1','22','','2600'),('Jack','1','','','2800'),('BaLa','1','','','3000')
SELECT SCOPE_IDENTITY() AS [SCOPE_IDENTITY]

 

解决这个办法,可以使用OUTPUT功能,

INSERT INTO [dbo].[Member] OUTPUT inserted.[MemberId]   
VALUES ('Maik','1','22','','2600'),('Jack','1','','','2800'),('BaLa','1','','','3000');

 

 执行结果,

MemberId
----------

3
4
5

 

 当然,也可以把这个结果导入到一个真实存在的表,临时表或是表变量中。相应实例可以查看下面链接:
SQL Server如何使用表变量
SQL定义自己定义表类型
SQL循环26个字母插入到一个表中

 

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消