oracle merge into与sqlserver merge into 比较
merge into:
在两个表之间,根据与源表联接的结果,对目标表执行插入、更新或删除操作。
Oracle在9i引入了merge into命令,SQL Server 2008也引入merge into。
不多说了,实例对比一下吧!
oracle merge into:
- /*
- drop table a;
- drop table b;
- */
- create table a (aid integer null,aname varchar2(10) null);
- create table b (bid integer null,bname varchar2(10) null);
- insert into a values(1,'aname1');
- insert into a values(3,'aname3');
- insert into a values(4,'aname4');
- insert into b values(1,'bname1');
- insert into b values(2,'bname2');
- insert into b values(3,'bname3');
- merge into a
- using b
- on (a.aid=b.bid)--必须加括号
- when matched then
- update set a.aname=b.bname where b.bid>1 --可加条件
- when not matched then
- insert values(b.bid,b.bname)
- select * from a;
- select * from b;
查看A表结果:

1. 条件id>1 不更新
2. 符合条件,更新目标表
3. 注意:目标表中,此行 aid<>bid,保留了下来
4. 目标表中不存在id=2的,插入到目标表
sqlserver2008 merge into:
- /*
- drop table a;
- drop table b;
- */
- create table a (aid int null,aname varchar(10) null);
- create table b (bid int null,bname varchar(10) null);
- insert into a values(1,'aname1');
- insert into a values(3,'aname3');
- insert into a values(4,'aname4');
- insert into b values(1,'bname1');
- insert into b values(2,'bname2');
- insert into b values(3,'bname3');
- merge into a
- using b
- on a.aid=b.bid --可不用括号
- when matched then
- update set a.aname=b.bname
- when not matched then
- insert values(b.bid,b.bname)
- when not matched by source then --在a表中无操作的记录可执行删除
- delete; --必须以分号结束
- select * from a;
- select * from b;
查看A表结果:

看,匹配的完全更新到A表!
oracle merge into 和 sqlserver 2008 merge into 的区别:
1. oracle在连接条件 on(a.aid=b.bid) 必须加括号,sqlserver 可以不用,也可以用。
2. oracle中目标表不参与的记录行只能保留,sqlserver 还可以执行删除。
3. oracle 在匹配条件中可以进一步添加更新的筛选条件,sqlserver不能增加条件约束。
4. oracle在语句结尾可加或不加分号,sqlserver 必定要在语句结束后添加分号“;”。
引用自:http://blog.csdn.net/kk185800961/article/details/8760634
oracle merge into与sqlserver merge into 比较的更多相关文章
- sqlServer MERGE 对数据进行修改或插入自动视别 特别用于批量数据的插入或修改
sqlServer MERGE 对数据进行修改或插入自动视别 特别用于批量数据的插入或修改 MERGE customer AS targetTable --目标表 USING ( ...
- Oracle、MySql、SQLServer数据分页查询
看过此博文后Oracle.MySql.SQLServer 数据分页查询,在根据公司的RegionRes表格做出了 SQLserver的分页查询语句: 别名.字段 FROM( SELECT row_nu ...
- 《物联网框架ServerSuperIO教程》-19.设备驱动和OPC Client支持mysql、oracle、sqlite、sqlserver的持久化。v3.6.4版本发布
19.设备驱动和OPC Client支持mysql.oracle.sqlite.sqlserver的持久化 19.1 概述 ServerSuperIO支持设备驱动和OPC Client采集的数 ...
- oracle直接读写ms sqlserver数据库(一)如何下载oracle database gateway for sqlserver
想从Oracle实时同步数据到Ms Sqlserver,需要在Oracle里面直连Sqlserver进行数据的读写,可以在Oracle服务器上安装oracle database gateway for ...
- Oracle 11g透明网关连接Sqlserver
Oracle 11g透明网关连接Sqlserver oracle 透明网关是oracle连接异构数据库提供的一种技术.通过Gateway,可以在Oracle里透明的访问其他不同的数据库,如SQL Se ...
- Oracle 11g透明网关连接Sqlserver 2000(转)
Oracle 11g透明网关连接Sqlserver 2000: http://www.cnblogs.com/lightnear/archive/2013/02/03/2890858.html 透明网 ...
- Leetcode 23.Merge Two Sorted Lists Merge K Sorted Lists
Merge Two Sorted Lists Merge two sorted linked lists and return it as a new list. The new list shoul ...
- 通过Oracle sql developer从sqlserver迁移数据到oracle
通过Oracle sql developer工具从sqlserver迁移数据到oracle 序言 一般情况下,sqlserver数据迁移到oracle,我们可以使用ODI来进行.但ODI的安装.配置. ...
- Oracle、Db2、SqlServer、MySQL 数据库插入当前系统时间
做易买网项目,由于对数据库插入系统时间不了解,常常遇到的问题: 1.java.sql.SQLException: ORA-01861: 文字与格式字符串不匹配.原因:由于获取系统时间类型不对,应为sy ...
随机推荐
- 几种jar转exe方法的比较
原摘自:https://blog.csdn.net/uikoo9/article/details/7458666 几种jar转exe方法的比较 2012年04月13日 17:33:07 阅读数:153 ...
- java 中一个char包含几个字节
背景 char包含几个字节可能记得在上学的时候书上写的是2个字节,一直没有深究,今天我们来探究一下到底一个char多少个字节? Char char在设计之初的时候被用来存储字符,可是世界上有那 ...
- Mac安装破解版Office 2016办公软件
一.相关软件 Microsoft Office 2016 For Mac Cracker 破解工具 资源地址(链接:https://pan.baidu.com/s/1Z5CIv-XbxS08MniYN ...
- MySQL数据导入导出方法与工具mysqlimport
MySQL数据导入导出方法与工具mysqlimport<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office ...
- 使用Serializable接口进行JAVA的序列化和反序列化
OBJECT STREAMS – SERIALIZATION AND DESERIALIZATION IN JAVA EXAMPLE USING SERIALIZABLE INTERFACE Hite ...
- Spring @ResponseBody 返回乱码 的优雅解决办法
版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[+] 返回的结果中,中文全部被问号(?)代替的解决办法: *-servlet.xml的部分配置如下: <bean id=&quo ...
- PDG转PDF注定会文件膨胀、质量下降吗?
作者:马健邮箱:stronghorse_mj@hotmail.com发布:2006.07.16更新:2006.07.20 事先声明: PDG文件是超星公司电子图书的专有格式,需要用超星公司的专用浏览器 ...
- linux源码安装apache
apache安装之前,需要安装APR.APR-Util和PCRE依赖包 下载 Apache 下载地址: http://httpd.apache.org/download.cgi (打开找最 ...
- 关于webapi练习过程中遇到的一系列问题记录
最近在尝试本地进行webapi调用的过程中,遇到一系列的问题,demo很小但着实让人头疼,先附上demo. 前台页面,目的是展示新闻的分类: 类别模型如下: 控制器代码如下: public Actio ...
- char 与 unsigned char的区别和取值范围
1.char和unsigned char 都是一个byte,8个bit.char是无符号类型,首位bit是符号位. 2.取值范围不同: (1)unsigned char的取值范围:0~2^8-1(0~ ...