网创优客建站品牌官网
为成都网站建设公司企业提供高品质网站建设
热线:028-86922220
成都专业网站建设公司

定制建站费用3500元

符合中小企业对网站设计、功能常规化式的企业展示型网站建设

成都品牌网站建设

品牌网站建设费用6000元

本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...

成都商城网站建设

商城网站建设费用8000元

商城网站建设因基本功能的需求不同费用上面也有很大的差别...

成都微信网站建设

手机微信网站建站3000元

手机微信网站开发、微信官网、微信商城网站...

建站知识

当前位置:首页 > 建站知识

SQL之mergeinto批量更新数据-创新互联

  Merge关键字是一个神奇的DML关键字。它在SQL Server 2008被引入,它能将Insert,Update,Delete简单的并为一句。MSDN对于Merge的解释非常的短小精悍:”根据与源表联接的结果,对目标表执行插入、更新或删除操作。例如,根据在另一个表中找到的差异在一个表中插入、更新或删除行,可以对两个表进行同步。”,通过这个描述,我们可以看出Merge是关于对于两个表之间的数据进行操作的。

英山ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为创新互联的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:18982081108(备注:SSL证书合作)期待与您的合作!

   可以想象出,需要使用Merge的场景比如:

  •    数据同步
  •    数据转换
  •    基于源表对目标表做Insert,Update,Delete操作

使用Merge关键字的好处

   首先是更加短小精悍的语句,在SQL Server 2008之前没有Merge的时代,基于源表对目标表进行操作需要分别写好几条Insert,Update,Delete。而使用Merge,仅仅需要使用一条语句就好。下面我们来看一个例子。

   首先建立源表和目标表,并插入相关的数据,如图1所示。

  

    图1.创建测试表并插入测试数据

   下面我们来写一个简单的Merge语句,如图2所示。

     

    图2.一个简单的Merge语句

    所造成的结果如图3所示。

     

    图3.Merge语句对于目标表的更新

    最终目标表的结果如图4所示。

     

    图4.最后目标表的结果

   Merge语句还有一个强大的功能是通过OUTPUT子句,可以将刚刚做过变动的数据进行输出。我们在上面的Merge语句后加入OUTPUT子句,如图5所示。

    

   图5.Merge语句后加上OUTPUT子句

  此时Merge操作完成后,将所变动的语句进行输出,如图6所示。

   

  图6.输出Merge操作产生的数据变更

  当然了,上面的Merge关键字后面使用了多个WHEN…THEN语句,而这个语句是可选的.也可以仅仅新增或是仅仅删除,如图7所示。

   

   图7.仅仅插入的Merge语句

  我们还可以使用TOP关键字限制目标表被操作的行,如图8所示。在图2的语句基础上加上了TOP关键字,我们看到只有两行被更新。

   

   图8.使用TOP关键字的Merge语句

   但仅仅是MATCHED这种限制条件往往不能满足实际需求,我们可以在图7那个语句的基础上加上AND附加上额外的限制条件,如图9所示。

    

   图9.加上了AND限制条件的Merge语句


本文标题:SQL之mergeinto批量更新数据-创新互联
本文路径:http://bjjierui.cn/article/dopioi.html

其他资讯