解决方法如下:

Use the OUTPUT functionality to grab all the INSERTED Id back into a table.

使用output 功能获取所有插入的id,然后插入一个表中

注:如果不想用批量插入id做关联的其他业务逻辑,而只是简单的返回给前台,那么可以直接使用output功能返回这些id,不需要插入表。

DECLARE @tmpTable TABLE (Iden INT IDENTITY(1,1),ColumnName VARCHAR(100)
)INSERT INTO @tmpTable(ColumnName)
OUTPUT INSERTED.Iden
SELECT TOP 10 sysobjects.name
FROM sysobjectsSELECT *
FROM @tmpTable

如果想收集插入的所有id,那么可以把output的数据插入到一个表变量中,如下代码:

DECLARE @tmpTable TABLE (Iden INT IDENTITY(1,1),ColumnName VARCHAR(100)
)DECLARE @batchInsertedIds TABLE (ID INT
)INSERT INTO @tmpTable(ColumnName)
OUTPUT INSERTED.Iden INTO @batchInsertedIds(ID)
SELECT TOP 10 sysobjects.name
FROM sysobjectsSELECT *
FROM @batchInsertedIdsSELECT *
FROM @tmpTable

  

 

转载于:https://www.cnblogs.com/teng-0802/p/10758816.html

SQLServer如何在批量插入后,获取批量插入的自增列的值相关推荐

  1. CAD中插入外部参照字体会变繁体_为什么在原点附近的图纸作为外部参照插入后却离插入点很远?...

    下面是本公众号文章分类目录,点击标题文字可打开分类文章列表: 安装卸载  异常.退出  文件及输入输出  基本操作技巧  各种设置及相关问题  界面和显示相关问题  快捷键  视图设置和调整  图层  ...

  2. SQL中获取刚插入记录时对应的自增列的值

    --创建数据库和表 create database MyDataBase use MyDataBase create table mytable ( id int identity(1,1), nam ...

  3. 插入后获取主键id(tkMapper)

    @Id @Column(name = "id", insertable = false) @KeySql(useGeneratedKeys = true) private Inte ...

  4. SQL 重置自增列的值 批量处理

    Declare @IdentityTable sysname, @IdentityColumn sysname, @TotalRows int, @i int, @Iden int, @Sql var ...

  5. DataGridView获取当前选中的行与列的值

    版权声明:本文为博主原创文章,引用如需标注必须出处  https://blog.csdn.net/qq_37227093/article/details/84335798 /// <summar ...

  6. C#丨DataGridView控件获取选中行的某一列的值

    例子 获取当前选中行中列名为id的值 dataGridView1.CurrentRow.Cells["id"].Value.ToString();

  7. 在有子增列的表中插入一笔数据同时获得自增列号码

    INSERT INTO ConCall_Reservation (列1,列2--) VALUES(值1,值2--): SELECT @@IDENTITY AS ID; 新增数据的同时,返回新增数据的自 ...

  8. mysql 获取刚插入行id汇总

    mysql 获取刚插入行id汇总 我们在写数据库程序的时候,经常会需要获取某个表中的最大序号数, 一般情况下获取刚插入的数据的id,使用select max(id) from table 是可以的. ...

  9. Mysql 中获取刚插入的自增长id的值

    1 insert into user (username,password) VALUES ('zyl','123'); 2 //获取刚插入的自增长id的值 3 select last_insert_ ...

  10. 数据库:mysql 获取刚插入行id[转]

    我们在写数据库程序的时候,经常会需要获取某个表中的最大序号数, 一般情况下获取刚插入的数据的id,使用select max(id) from table 是可以的. 但在多线程情况下,就不行了. 下面 ...

最新文章

  1. Java 初始化顺序
  2. IE6、 IE7、IE8、Firefox兼容性问题
  3. DEV柱状图----傻瓜版
  4. JavaScript实现判断位是不是偶数isEven算法(附完整源码)
  5. 安装配置好openstack环境的虚拟机,须要改动ip时,在数据库中同步改动ip的方法...
  6. VIM使用系统剪切板
  7. 为什么计算机关机慢,电脑关机慢是什么原因 电脑关机慢的原因【图文】
  8. Qt文档阅读笔记-Threaded Fortune Server Example解析
  9. mysql的sql执行过程和explain语句
  10. SpringBoot如何直接访问HTML页面
  11. CTSC2017APIO2017
  12. 《算法竞赛入门经典》 第二章 循环结构程序设计 习题
  13. 我们都在努力做自己,我的编程之路开篇
  14. Cognos组织架构介绍
  15. 小米路由器刷 linux,小米路由器刷入Padavan系统
  16. 学习帮——提高智商、改善记忆力的120种绝佳方法!
  17. 北京汇佳IB大考成绩公布
  18. vue2和vue3 的 keep-alive的用法
  19. 学习文档【超详细中文版】(小甲鱼视频)
  20. Python数据分析与展示 第一章 Numpy库入门

热门文章

  1. 【滤波器】基于matlab GUI IIR数字滤波器设计【含Matlab源码 044期】
  2. python精妙算法_YOLOv4:高速物体检测的精妙之处
  3. mysql sql语法区别_sql和mysql语法有什么不同
  4. mysql二进制文件如何查看_使用mysqlbinlog查看MySQL二进制文件内容
  5. 单变量求解C语言,二分法求解单变量非线性方程及其应用与实现.doc
  6. php继承 重写方法吗,PHP中的继承与重写
  7. mysql 并发锁_MySQL的并发控制与加锁分析
  8. 一般通话记录能保存多少条_有一手|2万炒股0一般能挣多少?
  9. springboot优点_Spring boot入门
  10. Windows服务中Timer组件Tick无法触发