位置: 编程技术 - 正文

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 函数使用详解

  • 一般纳税人开普票税率是3%还是13%
  • 土地增值税会计核算
  • 税务局代扣代缴税费
  • 固定资产出售损失属于广义费用吗
  • 邮政能否为固定业户代开增值税普通发票
  • 库存盘盈盘亏按进价还是售价
  • 物流公司 报关
  • 母公司与子公司之间的资金往来
  • 税务局代开专用发票要缴纳城建税吗?
  • 实收资本印花税减免税优惠政策2019
  • 快递费税率为什么是9
  • 收据能入账抵税吗
  • 最新定额是哪年
  • 财务内账外账的优缺点
  • 季报中现金流量表报的是当季的还是本年累计数
  • 出租房产免收租金,如何缴纳房产税
  • 采购开票税率
  • 监证方什么意思
  • 政府发放的稳岗补贴怎么做账
  • 工会经费什么时候申报缴纳
  • 怎么免费获取百度文库的付费文档
  • 偶然所得怎么缴纳个人所得税免税
  • 部门预算编制方法
  • 扬声器音量调节
  • win7系统电脑开机密码忘记了怎么办
  • 冲销去年凭证会计分录
  • 在win7系统中文件属性有哪些
  • 金融企业贷款逾期怎么办
  • 事业单位接受捐赠固定资产入账
  • 企业采用备抵法核算坏账
  • 木卫一距离木星多远
  • 怎么调整去年的业务招待费的比例
  • 原材料入库时如何计价
  • js获取网页链接
  • php中的正则表达式怎么使用
  • 以前年度的销售退回,冲减哪年的
  • pytorch教程
  • vue项目更新后还是老代码
  • 宝塔运行go
  • 个体工商户如何注销网上
  • 经营性现金流减利息
  • python中重写构造方法
  • 帝国cms使用手册
  • Mysql数据库查询客户端
  • 房地产土地使用权计入存货吗
  • 赔偿损失费用发票怎么开
  • 业务招待费进项税
  • 建筑业营改增的主要内容
  • 将原材料出售会计分录
  • 固定资产已提完折旧,但仍在使用,需要定期清理吗?
  • 记账凭证应该是
  • 商标注册费计入哪个科目
  • 保理融资的费用由谁承担
  • 出租不动产如何缴纳增值税
  • 投资的公司注销了怎么做账
  • 投资款不属于收入吗
  • 收到发票没付款,能打赢官司吗
  • 库存现金盘点表监盘人是谁
  • sqlserver高级教程
  • mysql根据另一张表更新
  • zhp.exe是什么进程
  • 不能用鼠标
  • centos6.5 minimal
  • 硬盘安装win8.1
  • win7记事本功能
  • win10应用商店不好用
  • win8不能安装软件
  • 十个linux命令
  • 创建react native项目
  • 怎么检测端口通不通
  • jquery生成div
  • 如何让批处理文件运行不显示
  • 非递归与递归
  • unity mesh bounds
  • jquery插件大全
  • 安卓手机管家推荐
  • [置顶] 安卓手电筒小程序
  • 国家税务局涉税信息公开
  • 亮点纷呈的意思和造句
  • 长沙市各个区的县市排名
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设