sqlserver中关于merge
merge:
在2008后被引入,它能将insert,Update,delete 简单并为一句,
根据与源表连接的结果,对目标表进行插入,更新和删除操作
例如:Merge是关于对于两个表之间进行操作的
CREATE TABLE SourceTable
(
id INT,
[desc] NVARCHAR()
) CREATE TABLE TargetTable
(
id INT,
[desc] NVARCHAR()
) INSERT INTO SourceTable(id,[desc])
VALUES( ,'描述1') INSERT INTO SourceTable(id,[desc])
VALUES( ,'描述2') INSERT INTO SourceTable(id,[desc])
VALUES( ,'描述3') INSERT INTO SourceTable(id,[desc])
VALUES( ,'描述4') INSERT INTO TargetTable(id,[desc])
VALUES( ,'在源表存在,将会被更新') INSERT INTO TargetTable(id,[desc])
VALUES( ,'在源表存在,将会被更新') INSERT INTO TargetTable(id,[desc])
VALUES( ,'在源表不存在,将会被删除') INSERT INTO TargetTable(id,[desc])
VALUES( ,'在源表存在,将会被删除') SELECT * from TargetTable SELECT * from SourceTable MERGE INTO TargetTable AS T
USING SourceTable AS S
ON t.id = s.id
WHEN matched --当两个Id相等的时候,目标表Id为1,2的数据将被更新
THEN UPDATE SET t.[desc] = s.[desc]
WHEN NOT matched --目标表中没有,原表有,则插入相关数据
THEN INSERT VALUES(s.id,s.[desc])
WHEN NOT matched BY source--目标表中存在,原表中不存在,则删除
THEN delete ;
注意:merge语句结束后必须以 ;结尾,否则报错
sqlserver中关于merge的更多相关文章
- SQL点滴18—SqlServer中的merge操作,相当地风骚
原文:SQL点滴18-SqlServer中的merge操作,相当地风骚 今天在一个存储过程中看见了merge这个关键字,第一个想法是,这个是配置管理中的概念吗,把相邻两次的更改合并到一起.后来在tec ...
- SqlServer中的merge操作(转载)
SqlServer中的merge操作(转载) 今天在一个存储过程中看见了merge这个关键字,第一个想法是,这个是配置管理中的概念吗,把相邻两次的更改合并到一起.后来在technet上搜索发现别有 ...
- SqlServer中的merge操作,相当地风骚
今天在一个存储过程中看见了merge这个关键字,第一个想法是,这个是配置管理中的概念吗,把相邻两次的更改合并到一起.后来在technet上搜索发现别有洞天,原来是另外一个sql关键字,t-sql的语法 ...
- SQLServer中的Merge使用
Merge DML 作用: 数据同步 数据转换 基于源表对目标表做Insert,Update,Delete操作 Merge关键字的一些限制 使用Merge关键字只能更新一个表 源表中不能有重复的记录 ...
- SQLSERVER中的假脱机spool
SQLSERVER中的假脱机spool 我发现网上对于假脱机的解释都非常零散,究竟假脱机是什么? 这几天在家里研究了一下,收集了很多网上的资料 假脱机是中文的翻译,而英文的名字叫做 spool 在徐老 ...
- CTE在Oracle和Sqlserver中使用的差异
CTE是一个很好用的工具,他可以帮助我们清晰代码结构,减少临时表使用,同时oracle和sqlserver都提供支持.但在oracle和sqlserver中使用CTE也存在一定区别. Oracle使用 ...
- sqlserver 中WITH NOLOCK、HOLDLOCK、UPDLOCK、TABLOCK、TABLOCKX
https://www.cnblogs.com/sthinker/p/5922967.html SqlServer查询语句中用到的锁 作者: wokofo 前段时间**公司DBA来我们这培训.讲了一大 ...
- 我是如何在SQLServer中处理每天四亿三千万记录的
首先声明,我只是个程序员,不是专业的DBA,以下这篇文章是从一个问题的解决过程去写的,而不是一开始就给大家一个正确的结果,如果文中有不对的地方,请各位数据库大牛给予指正,以便我能够更好的处理此次业务. ...
- SQLSERVER中NULL位图的作用
SQLSERVER中NULL位图的作用 首先感谢宋沄剑提供的文章和sqlskill网站:www.sqlskills.com,看下面文章之前请先看一下下面两篇文章 SQL Server误区30日谈-Da ...
随机推荐
- Windows 下如何设置 只允许固定IP远程访问
通过设置IP安全策略限制固定IP访问 说明: (1)以XP环境为例,步骤:先禁止所有IP,再允许固定IP访问. (2)配置过程中很多步骤图是重复的,一些没价值的图就省略了: (3)光看的话可能中间重复 ...
- SQL Select的执行顺序
1.FROM 2.ON 3.JOIN 4.WHERE 5.GROUP BY 6.WITH CUBE or WITH ROLLUP 7.HAVING 8.SELECT 9.DISTINCT 10.ORD ...
- Java学习备忘录
1.工程名首字母可以小写,类名首字母大写 2.批量注释: Eclipse : ctrl+/ 如果不行 用 ctrl+7 或者 ctrl+shift+c Notepad++ : ctrl+q 或者 c ...
- jQuery提交Json数据到Webservice,并接收返回的Json数据
jQuery ajax webservice:get 和 post 一.GET 方式 客户端 复制代码 代码如下: var data = { classCode: "0001"}; ...
- OA系统权限管理设计(转载)
不论什么系统都离不开权限的管理,有一个好的权限管理模块,不仅使我们的系统操作自如,管理方便,也为系统加入亮点. l 不同职责的人员,对于系统操作的权限应该是不同的.优秀的业务系统,这是 ...
- POJ 1743 Musical Theme 后缀数组 最长重复不相交子串
Musical ThemeTime Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://poj.org/problem?id=1743 Description ...
- Pimp_my_Z1
https://github.com/Androguide/Pimp_my_Z1 Pimp_my_Z1-master.zip
- 使用导入导出进行备份和恢复OCR(10g)
Oracle推荐在对集群调整时,比方添加.删除节点之前,应对OCR进行备份,能够用export备份到指定文件.假设做了replace或者restore等操作,Oracle建议使用cluvfy comp ...
- 使用代码修改camera.cullingMask
通过查找http://docs.unity3d.com/Documentation/ScriptReference/Camera-cullingMask.html只是能够指定某个层,但要指定多个层却不 ...
- 网络IPC:套接字
网络进程间通信(network IPC):不同计算机(通过网络相连)上运行的进程相互通信的机制. 套接字网络IPC接口:进程能够使用该接口和其他进程通信.通过该接口,其他进程运行位置是透明的,它们可以 ...