如何取得批量插入的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个字母插入到一个表中

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值