首页 > 数据库 >SQL server 中Merge Into的用法

SQL server 中Merge Into的用法

时间:2023-10-31 10:22:24浏览次数:50  
标签:target Merge Into 更新 server source merge age name

从备份表中更新字段到正式表中,使用 UPDATE 批量更新大量的数据,会出现效率低下,有时候甚至卡死的情况,后面通过使用 MERGE INTO 代替 UPDATE 执行批量更新,会提升执行效率。

MERGE INTO语法如下:

 
  1.   MERGE INTO table_name alias1
  2.   USING (table|view|sub_query) alias2
  3.   ON (join condition)
  4.   WHEN MATCHED THEN
  5.   UPDATE
  6.   SET col1 = col1_val1,
  7.   col2 = col2_val2
  8.   WHEN NOT MATCHED THEN
  9.   INSERT (column_list) VALUES (column_values);
 

其中,table_name 指的是更新的表,using()里边的指的是数据来源表/视图/子查询结果集,condition指的是连接条件,如果满足连接条件,set 字段1=值1,字段2=值2...

如果连接条件不满足,则停止更新进行插入。
下面我们来举例说明:

先创建被更新表merge_target,并往其中插入一条数据用来更新;

再创建更新表merge_source,用来向被更新表插入数据;

下面准备merge into脚本:

 
  1.   MERGE INTO merge_target target
  2.   USING (SELECT B.name,B.age,B.target_id FROM merge_source B) source
  3.   ON (target.id=source.target_id)
  4.   WHEN MATCHED THEN
  5.   UPDATE
  6.   SET target.name = source.name,
  7.   target.age = source.age
  8.   WHEN NOT MATCHED THEN
  9.   INSERT(target.name,target.age) VALUES (source.name,source.age);
 

结果如下:

非原創,來源:

https://blog.csdn.net/spw55381155/article/details/79891305

标签:target,Merge,Into,更新,server,source,merge,age,name
From: https://www.cnblogs.com/csjoz/p/17799678.html

相关文章

  • [转]SqlServer大量更新引起同步链延时问题
    前言:   在SQLServer数据库中,当我们对一个位于同步链上的表进行更新时,如果更新的记录数也非常多,几百或是几千万,那么批量更新该表会造成同步链的大量延时(甚至有可能崩溃掉,即使同步链不崩溃,等的人也要崩溃了)。  原因:  一般情况下,Replication是根据我们更改的......
  • php<= 7 . 4 . 21 development server源码泄露漏洞复现
    前言前一段时间在看羊城杯wp里了解到了这个漏洞,觉得挺有意思尝试复现一下(这里附上原漏洞地址https://blog.projectdiscovery.io/php-http-server-source-disclosure/版本PHP<=7.4.21漏洞成因通过php-S开起的内置WEB服务器存在源码泄露漏洞,可以将PHP文件作为静态文件......
  • CITECT2018R2做WEB发布练习2-安装webserver,配置用户
    这一篇博客我在新浪发表过,地址是CITECT2018R2做WEB发布练习2-安装webserver,配置用户_来自金沙江的小鱼_新浪博客(sina.com.cn)在这里也记录一遍。为了实现citect的web发布功能,需要安装web服务器,我将web服务器和IO服务器、报警服务器等安装在同一台电脑上。需要先安装IIS,这一点......
  • 数据库信息速递:你的数据库部署到Serverless 类型的数据库是否合适? (译)...
    serverless类型的数据库在国外的数据行业中持续受到关注原始是什么?原因来自于对于一个开始新项目的应用程序开发人员来说,他们可以配置数据库,不需要担心计算和存储的大小,也不需要微调数据库配置,只需要对工作负载模式和事务量有一个大致的了解,就可以近似估算成本,这个观点非常吸引人,......
  • 报错:The server time zone value ‘�й���׼ʱ��’ is unrecognized or represents more th
    在运行项目的时候遇到了这样一个报错,是数据库的问题但是不知道是什么原因,在网上搜了一下发现只需要在url后面加上serverTimezone=UTC这串代码就行了例如jdbc:mysql://localhost:3306/result?characterEncoding=UTF-8&serverTimezone=UTC ......
  • windows server 2012 R2 环境下安装 .NerCore
    windowsserver2012R2环境下安装.NerCore 安装步骤如下1,微软官网下载 .NetCore服务器运行环境  Core运行环境下载地址  https://dotnet.microsoft.com/download/dotnet-core   下载对应版本即可!2,安装成功后cmd运行命令dotnet--info如下图 出现版......
  • SQL Server数据库创建远程服务器备份计划(小白详细图文教程)
    一、前言最近项目系统做安全加固,以前是本地备份,现在需要做远程内网服务器数据库备份,后期也有可能做异地备份。下面以SQLServer2016内网服务器数据库备份为例,数据库服务器地址:192.168.10.200备份服务器地址:192.168.10.100二、创建存储文件夹192.168.10.100远程100服务器,创建......
  • 数据库数据恢复—误操作导致SqlServer数据库所在NTFS分区损坏的数据恢复案例
    SqlServer数据库数据恢复环境:一台服务器,windows操作系统+NTFS文件系统,运行了12个sqlserver数据库。SqlServer数据库故障:根据用户描述,故障情况是工作人员误操作导致服务器硬盘上sqlserver数据库所在分区损坏。经过北亚企安数据恢复工程师对故障服务器硬盘的初步检测,确认sqlserver......
  • SQL Server2022安装图文教程
    一:下载(1)官网下载链接https://www.microsoft.com/zh-cn/sql-server/sql-server-downloadsSQLServer下载|Microsoft(2)在下载目录中找到下面这个小的安装包SQL2022-SSEI-Dev.exe,运行开始下载SQLserver;二:安装SqlServer2022服务端(3)双击安装包 【SQLServer2022-x64-CHS-Dev.iso......
  • SqlServer实现分页查询
    SqlServer实现分页查询1.利用max(主键)--分页查询公式-利用max(主键)selecttop@pageSize*from表名where主键>=(selectmax(主键)from(selecttop((@pageIndex-1)*@pageSize+1)主键from表名orderby主键asc)temp_max_ids)orderby主键;2.利用row_number关键字......