位置: 编程技术 - 正文

SQLServer中merge函数用法详解(sql merge语句)

编辑:rootadmin

推荐整理分享SQLServer中merge函数用法详解(sql merge语句),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:sql merge函数,sql语句merge,merge sqlserver,sqlserver merge用法,sql merge join,sql merge join,sqlserver merge用法,sql merge函数,内容如对您有帮助,希望把文章链接给更多的朋友!

Merge关键字是一个神奇的DML关键字。它在SQL Server 被引入,它能将Insert,Update,Delete简单的并为一句。MSDN对于Merge的解释非常的短小精悍:”根据与源表联接的结果,对目标表执行插入、更新或删除操作。

MERGE 目标表

USING 源表

ON 匹配条件

WHEN MATCHED THEN

语句

WHEN NOT MATCHED THEN

语句;

其中最后语句分号不可以省略,且源表既可以是一个表也可以是一个子查询语句

WHEN NOT MATCHED BY TARGET

表示目标表不匹配,BY TARGET是默认的,所以上面我们直接使用WHEN NOT MATCHED THEN

WHEN NOT MATCHED BY SOURCE

SQLServer中merge函数用法详解(sql merge语句)

表示源表不匹配,即目标表中存在,源表中不存在的情况。

主要用法:

merge无法多次更新同一行,也无法更新和删除同一行

当源表和目标表不匹配时:若数据是源表有目标表没有,则进行插入操作若数据是源表没有而目标表有,则进行更新或者删除数据操作当源表和目标表匹配时:进行更新操作或者删除操作when matched 这个子句可以有两个,当有两个时,第一个子句必须是when matched and condition且两个matched子句只会执行一个,且两个子句必须是一个update和一个delete操作when not matched by source和上面类似

merge icr_codemap_bak as ausing icr_codemap as bon a.COLNAME = b.COLNAME and a.ctcode = b.ctcodewhen matched and b.pbcode <> a.pbcodethen update set a.pbcode = b.pbcodewhen not matchedthen insert values(b.colname,b.ctcode,b.pbcode,b.note);

可以比对字段不一致进行更新

这个是MSDN的网址

在 Merge Matched 操作中,只能允许执行 UPDATE 或者 DELETE 语句。在 Merge Not Matched 操作中,只允许执行 INSERT 语句。一个 Merge 语句中出现的 Matched 操作,只能出现一次 UPDATE 或者 DELETE 语句,否则就会出现下面的错误 - An action of type 'WHEN MATCHED' cannot appear more than once in a 'UPDATE' clause of a MERGE statement.Merge 语句最后必须包含分号,以 ; 结束。

ps:SQL Server中Merge-using的用法

在执行之前:

执行之后

Merge和using搭配用于特别是BI上数据统计和分析上 比如 要求子表中没有的数据那么父表中就要删除对应的数据 保证子表和父表的数据对应 如果按照常规的做法是 跑个作业 然后通过游标/表值函数/临时表等等循环的获取数据然后更新父表 这样是很浪费效率的 这时Merge派上用场了。

SQLServer中Partition By及row_number 函数使用详解 partitionby关键字是分析性函数的一部分,它和聚合函数不同的地方在于它能返回一个分组中的多条记录,而聚合函数一般只有一条反映统计值的记录,par

深入学习SQL Server聚合函数算法优化技巧 Sqlserver聚合函数在实际工作中应对各种需求使用的还是很广泛的,对于聚合函数的优化自然也就成为了一个重点,一个程序优化的好不好直接决定了这

图文教程mssqlserver数据库导出到另外一个数据库的方法 下文通过图文并茂的方式给大家介绍mssqlserver数据库导出到另外一个数据库的方法,具体详情请看下文。1.准备源数据库,找到想要导出的数据库,右键

标签: sql merge语句

本文链接地址:https://www.jiuchutong.com/biancheng/312845.html 转载请保留说明!

上一篇:SQL Server使用游标处理Tempdb究极竞争-DBA问题-程序员必知(sqlyog)

下一篇:SQLServer中Partition By及row_number 函数使用详解

  • 代付的费用收不收手续费
  • 个人如何办理营业执照需要什么材料
  • 报完税的发票还能作废吗
  • 所得税费按年缴纳?
  • 坏账准备计入营业收入如何报年报
  • 发现账实不符,第一件事就是要干嘛?
  • 出售使用过的固定资产
  • 固定资产未到期报废进项税额需要转出吗
  • 计提存货减值准备怎么算
  • 递延所得税当期发生额
  • 收到科技局的补贴短信
  • 期初应收帐款
  • 聘用劳务人员派遣合法吗
  • 个人经营所得核定征收超过多少要交税
  • 物流公司通行票抵税比例是多少
  • 自产自销税点
  • 小企业处置固定资产
  • 预支差旅费的会计科目
  • 返还的个税手续费奖励给个人需要缴纳个税吗
  • 生产企业出口货物必须以什么为计税依据计算免抵退税额
  • 政府高薪补贴
  • windows聚焦无法显示 为灰色
  • macos mojace
  • 未担保余值什么意思
  • 筹资费用的含义
  • 怎么认定是否为党员
  • award bios设置详解
  • 公司财务账目不符怎么办
  • PHP:xml_get_current_byte_index()的用法_XML解析器函数
  • thinkphp5框架介绍
  • 电脑bios找不到vt
  • 进货的折扣该怎么算
  • win10设置待机时间长怎么在哪里设置
  • wordpress主题dux
  • 稳岗补贴需要缴纳什么税
  • 跨年调整收入增值税怎么办
  • 微服务架构java框架
  • 时域卷积图解法
  • fping命令参数
  • 完美破费是什么意思
  • 公司车辆退保进哪个科目
  • 工程合同主要看什么
  • SQL server配置管理器打开TCP/IP后重启不了
  • 计提制造费用
  • 营改增后租金收入交什么税
  • 小规模纳税人进项票可以抵扣吗
  • 电商会计怎么做账
  • 承兑汇票的贴息怎么算
  • 印花税的计算公式应纳税所得额包含增值税吗
  • 免税企业开了含税吗
  • 运费发票没到可以先计提吗
  • 公司向法人借款需要交税吗
  • 营业外支出增加说明了什么
  • 外购商品为什么是库存商品
  • 什么是固定资产的后续支出
  • 会计 预提
  • 建账的大体流程是什么
  • xp电脑启动项怎么设置启动项
  • 重装系统东西
  • 手动清洁cmos
  • xp系统怎么弄成win7
  • win8怎么外接屏幕
  • 在Linux系统中安装pacman
  • win10搜索设置选项
  • unity进度条有百分比代码
  • Tutorial 6:Translation Transformation
  • jquery简单例子
  • android去掉状态栏第三方图标
  • jquery源码下载
  • angularjs简介
  • fiori开发
  • 安卓回调接口怎么写
  • python作用域和命名空间
  • 胰腺在人体的哪个部位图解
  • python3 编码转换
  • 印花税没有按时申报怎么办
  • 货物劳务税包括哪些税
  • 企业不做审计会有什么后果?
  • 锦江区税务局搬迁新地址
  • 税务筹划怎么样
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设