SQL Server中关于 INSERTED.Id 与 SCOPE_IDENTITY() 获取新增数据的Id

news/2025/10/17 15:59:12/文章来源:https://www.cnblogs.com/sugarwxx/p/19148183

前景:

通过程序将一个数据库的主表+子表的数据迁移至新的数据库,表的id未自增长,源数据存在删除的情况,所以需要获取插入数据新增id和旧id的比对关系数据

通过如下语句来获取新旧id

BEGIN TRY  BEGIN TRANSACTION;DECLARE @Map TABLE (OldId int, Id int);--临时表存储新旧idINSERT INTO SupportGroup (CompanyId,GroupCode,GroupName,Description,Status,Type,CreationDate,CreatedBy,UpdatedDate,UpdatedBy)OUTPUT INSERTED.Id,86 INTO @Map(Id,OldId)VALUES (N'86',N'T-86',N'全部权限',N'',1,1,'2023/9/21 10:09:32',N'TEST01','2025/9/16 10:45:00',N'TEST01');INSERT INTO SupportGroup (CompanyId,GroupCode,GroupName,Description,Status,Type,CreationDate,CreatedBy,UpdatedDate,UpdatedBy)OUTPUT SCOPE_IDENTITY(),87 INTO @Map(Id,OldId)VALUES (N'87',N'T-87',N'VND全部',N'',1,1,'2023/9/21 14:04:44',N'TEST01','2023/9/21 14:04:44',N'TEST01');INSERT INTO SupportGroup (CompanyId,GroupCode,GroupName,Description,Status,Type,CreationDate,CreatedBy,UpdatedDate,UpdatedBy)OUTPUT SCOPE_IDENTITY(),108 INTO @Map(Id,OldId)VALUES (N'108',N'T-108',N'wl_test',N'测试222',1,1,'2025/8/21 11:55:57',N'TEST01','2025/8/27 15:56:30',N'TEST01');COMMIT TRANSACTION;  -- 一切正常就提交
END TRY
BEGIN CATCHIF XACT_STATE() <> 0ROLLBACK TRANSACTION;  -- 出错就回滚-- 把错误抛出来(可选)DECLARE @errMsg nvarchar(4000) = ERROR_MESSAGE();RAISERROR (@errMsg, 16, 1);END CATCH;
SELECT OldId, Id FROM @Map;--获取新旧id

 

异常:

这个语句在数据库中执行没有任何问题,也能正常返回新旧id列表,但是在程序中执行这个语句就会出现一个问题

1.返回的一条新旧id数据中,新id是空的,且只有前面30 条<总共批量插入119条>被DBRearder读出来了,后面的89条出现异常(“数据提示不可用,不是有效的格式说明符”)

 

原因:

1.首先OUTPUT 子句里 SCOPE_IDENTITY() 语法上就被禁止

2.即使将来允许,它返回的也是“当前作用域里最后一条 INSERT 产生的 ID”,而 OUTPUT 子句是逐行触发的,语义上就会互相覆盖

3.OUTPUT 只认 INSERTED.Id

 

初衷:

鉴于之前的了解SCOPE_IDENTITY()获取的是作用域内新增数据的id,而 INSERTED.Id获取的是这张表最新新增数据的id,可能获取到的是其他途径新增的id

所以此处就使用SCOPE_IDENTITY()来获取新增数据的Id

 

特别的:

后了解到在OUTPUT 中使用INSERTED.Id 直接拿到“本条正在插入的行”的身份值,与并发、与顺序、与作用域都无关。

 

解决:

将SCOPE_IDENTITY()改为使用INSERTED.Id 获取本条新增数据的Id

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/938978.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2025年鸡精生产线/鸡精生产设备厂家推荐排行榜,高效节能与智能化生产之选!

2025年鸡精生产线/鸡精生产设备厂家推荐排行榜,高效节能与智能化生产之选!随着食品工业的不断发展,鸡精作为一种重要的调味品,其生产技术也在不断进步。高效的鸡精生产线和先进的生产设备是确保产品质量和生产效率…

设备二维码图片下载

package com.inovance.paas.tpm.infra.util; import org.apache.commons.compress.utils.IOUtils; import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServletResponse; import java.io.*; im…

neural network中的tensor是什么?

在神经网络中,Tensor(张量) 是核心数据结构,用于表示和操作多维数组。它本质上是数学中张量概念的工程化实现,是标量、向量、矩阵在高维空间的自然扩展。以下从多个维度详细解释: 1. 数学本质:多维数组的泛化维…

2025年工厂维保,工厂机电维修,工厂应急维修,工厂运维服务厂家推荐排行榜,专业高效与全方位保障之选!

2025年工厂维保、工厂机电维修、工厂应急维修、工厂运维服务厂家推荐排行榜,专业高效与全方位保障之选!随着工业4.0时代的到来,制造业的自动化和智能化水平不断提升,工厂维保、机电维修、应急维修及运维服务的需求…

2025/10/17

Return on Investment(ROI) 投资回报率 - 最常用的商业术语 这是“ROI”最核心和最广泛使用的含义。 全称:Return on Investment 中文:投资回报率 定义:衡量一项投资盈利效率的指标,用于评估从投资中获得的回报与…

2025年视频拍摄服务权威推荐榜:创意剪辑与高清画质完美结合,打造视觉盛宴!

2025年视频拍摄服务权威推荐榜:创意剪辑与高清画质完美结合,打造视觉盛宴!随着数字化时代的到来,视频拍摄已成为企业宣传、品牌推广的重要手段。高质量的视频不仅能够吸引观众的注意力,还能有效提升品牌形象和市场…

2025年10月权威更新:门头/仿木纹板/拉网/铝复合板/锥芯板/太空舱/铝蜂窝板/铝单板厂家排行榜前十强推荐与选购指南四川汇才以实力登顶

随着建筑行业对装饰材料的品质、环保与定制化要求不断提升,铝单板市场竞争已从单一价格比拼转向综合实力较量。2025 年行业数据显示,头部厂家凭借规模化生产、技术创新与全链条服务占据市场主导。本榜单基于生产能力…

2025年网络推广服务商权威推荐榜单,SEO优化,SEM营销,社交媒体推广,内容营销公司推荐

2025年网络推广服务商权威推荐榜单:SEO优化、SEM营销、社交媒体推广、内容营销公司推荐随着数字化转型的加速,越来越多的企业开始重视网络推广,希望通过SEO优化、SEM营销、社交媒体推广和内容营销等手段提升品牌影响…

日志分析-Tomcat日志分析

日志分析-Tomcat日志分析 简介 小王在自己的服务器上安装配置了Tomcat,并写了几个简单的网页。但由于安全意识不足,很快就被攻击者利用了。请你帮他排查一下存在的安全问题。 RDP 端口3389 用户名/密码:Administrat…

Cursor国内用户无法使用模型(Model not avilable)解决方案

Cursor作为一个AI+IDE编辑器,它是基于VSCode开源代码进行开发,它在底层集成了多种大语言模型(如:Claude、ChatGPT、Gemini等)来使用的模型能力。然而,不同模型之间的能力差异也是非常大的,作为我的实际使用体验…

2025年手持式光谱仪厂家权威推荐榜单:精准检测与便携操作的行业首选!

2025年手持式光谱仪厂家权威推荐榜单:精准检测与便携操作的行业首选!随着科技的不断进步,手持式光谱仪在多个行业中发挥着越来越重要的作用。无论是环境监测、食品安全还是工业生产,手持式光谱仪都以其便携性和高精…

CF1325F Ehabs Last Theorem 题解

Sol 令 \(k=\left\lceil\sqrt{n}\right\rceil\)。 首先注意到环相当容易做,直接 DFS 生成树,然后判断是否有点对 \((a,b)\) 满足 \(a\) 是 \(b\) 的祖先且 \(dis_{a,b}>=k\)。 如果不存在环,那么就意味着对于任何…

2025年解冻设备厂家权威推荐榜单:高效节能与智能控制的行业首选!

2025年解冻设备厂家权威推荐榜单:高效节能与智能控制的行业首选!随着食品加工行业的快速发展,解冻设备作为关键环节之一,其性能和效率直接影响到生产质量和成本。为了帮助筛选解冻设备品牌,特此发布权威推荐榜单,…

Notepad++中替换时保留分组字符

例如,要找到不是:和。的换行,并去掉换行,保留前面的字符: 查找目标([^:。])\r\n 替换为 \1 这里的1是表示第1个分组,即括号中正则匹配中的字符。* 在把pdf的文字复制到txt文件时会用到。

2025年10月休闲食品品牌权威评测与推荐:用数据说话的全景选购指南

一、引言 当“解压”“微醺”“追剧”成为都市人高频场景词,休闲食品已从“解馋”升级为“情绪刚需”。对于采购者、创业者乃至普通消费者而言,如何在口味、健康、成本之间找到平衡点,直接决定复购率与经营利润。20…

2025年10月PE管厂家推荐榜:茗杰建华领衔的对比评测与选购指南

一、引言 市政自来水、农业灌排、地源热泵、集中供热等场景对PE管的耐压、耐腐蚀、寿命与接口可靠性提出同步要求,采购者既要控制一次性材料成本,又要降低后期维护费用,还要确保工地交付节点。2025年四季度北方基建…

2025年棋牌室加盟权威推荐榜单:精选品牌,专业服务与市场口碑深度解析!

2025年棋牌室加盟权威推荐榜单:精选品牌,专业服务与市场口碑深度解析!随着休闲娱乐市场的不断发展壮大,棋牌室作为传统且受欢迎的娱乐方式,近年来也迎来了新的发展机遇。越来越多的投资者开始关注棋牌室加盟项目,…

2025 年数控铣床厂家最新推荐榜单:双头 / 双面 / 龙门 / 双侧 / 新型 / 双端面 / 平面 / 双头龙门设备优质厂家排行及选购攻略

当前制造业加速向智能化、高精度方向转型,数控铣床作为核心工业母机,其品质直接决定生产效率与产品精度。但市场上品牌繁杂,既有技术落后、故障频发的低价设备,也有功能冗余、与企业需求不匹配的高端产品,不少企业…