---文章 MatchInt的方式

Create table SourceTable([ID] int,[Desc] varchar(50));

Create table TargetTable([ID] int,[Desc] varchar(50));

insert into SourceTable([ID],[Desc]) values(1,'Desc1');

insert into SourceTable([ID],[Desc]) values(2,'Desc2');

insert into SourceTable([ID],[Desc]) values(3,'Desc3');

insert into SourceTable([ID],[Desc]) values(4,'Desc4');

insert into TargetTable([ID],[Desc]) values(1,'SourceTable update');

insert into TargetTable([ID],[Desc]) values(2,'SourceTable update');

insert into TargetTable([ID],[Desc]) values(5,'SourceTable Not update');

insert into TargetTable([ID],[Desc]) values(6,'SourceTable Not update');

truncate table  SourceTable;

truncate table  TargetTable;

select * from TargetTable

select * from SourceTable

-----

/* Update

merge into TargetTable  as T

using SourceTable As S on T.[ID]=S.[ID]

when matched

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 into TargetTable  as T

using SourceTable As S on T.[ID]=S.[ID]

when matched

then update set T.[desc]=S.[desc]

when not matched

then insert values(s.[ID],S.[Desc])

when not matched By source

then delete

output $action as

[ACTION],

Inserted.[ID] as InsertID,

Inserted.[Desc] as inserdDesc,

Deleted.[ID] as deleteID,

Deleted.[Desc] as DeleteDesc;

----加入條件

merge into TargetTable  as T

using SourceTable As S on T.[ID]=S.[ID]

when matched and S.[ID]=3

then update set T.[desc]=S.[desc]

when not matched

then insert values(s.[ID],S.[Desc])

when not matched By source

then delete

output $action as

[ACTION],

Inserted.[ID] as InsertID,

Inserted.[Desc] as inserdDesc,

Deleted.[ID] as deleteID,

Deleted.[Desc] as DeleteDesc;

----只更新前2行

merge into top(2) TargetTable  as T

using SourceTable As S on T.[ID]=S.[ID]

when matched and S.[ID]=3

then update set T.[desc]=S.[desc]

when not matched

then insert values(s.[ID],S.[Desc])

when not matched By source

then delete

output $action as

[ACTION],

Inserted.[ID] as InsertID,

Inserted.[Desc] as inserdDesc,

Deleted.[ID] as deleteID,

Deleted.[Desc] as DeleteDesc;

Merge在Sqlserver使用例子说明的更多相关文章

  1. 基础排序算法之并归排序(Merge Sort)

    并归排序是学习分治法 (Merge Sort) 的好例子.而且它相对于选择,插入,冒泡排序来说,算法性能有一定提升.我首先会描述要解决的问题,并给出一个并归排序的例子.之后是算法的思路以及给出伪代码. ...

  2. c# mybatis net +mysql

    1找到  mybatis.net最好有个例子 http://www.codeproject.com/Articles/894127/WebControls/#_comments  在这里... 这是一 ...

  3. 转: jdbc连接数据库需要注意和出错的地方

    * 1.数据库登录模式不能只使用windows登录模式,要采取混合模式登录, * 并记住相应的密码和账户: * 2.连接数据库后一定要记得关闭资源,否则就会造成资源浪费. * 关闭的时候也要注意顺序, ...

  4. SQL Server 性能优化之——T-SQL NOT IN 和 NOT Exists

    这次介绍一下T-SQL中“Not IN” 和“Not Exists”的优化. Not IN 和 Not Exists 命令 : 有些情况下,需要select/update/delete 操作孤立数据. ...

  5. 构建一个真实的应用电子商务SportsStore9

    使用MVC4,Ninject,EF,Moq,构建一个真实的应用电子商务SportsStore(九) 实在不好意思,好久没有更新了,我不想找些客观原因来解释,只想请大家见谅!现在我们继续我们的项目,客户 ...

  6. Java Spring Boot VS .NetCore (四)数据库操作 Spring Data JPA vs EFCore

    Java Spring Boot VS .NetCore (一)来一个简单的 Hello World Java Spring Boot VS .NetCore (二)实现一个过滤器Filter Jav ...

  7. MySQL/MariaDB表表达式(3):视图

    视图是表表达式的一种,所以它也是虚拟表.对视图操作的时候会通过语句动态的从表中临时获取数据. 1.创建.修改视图 CREATE [OR REPLACE] [ALGORITHM = {UNDEFINED ...

  8. ServiceStack 多租户的实现方案

    以SqlServer为例子说明ServiceStack实现多租户,在SqlServer中创建4个Database:TMaster.T1,T2,T3,为了安全起见 每个Database不用sa账号,而是 ...

  9. python PIL 图像处理库简介(一)

    1. Introduction     PIL(Python Image Library)是python的第三方图像处理库,但是由于其强大的功能与众多的使用人数,几乎已经被认为是python官方图像处 ...

随机推荐

  1. cf 730i

    题意:有n个人,每个人有两个能力值,选a个人用它的第一个能力值,b个人用它的第二个能力值,每个人只能选一次,求一个方案使得能力值之和最大,并输出选择方案. 题解:最小费用最大流,原点1向n个人每个人i ...

  2. oracle+ibatis 批量插入-支持序列自增

    首先请先看我前面一篇帖子了解oracle批量插入的sql:[oracle 批量插入-支持序列自增] 我用的ibatis2.0,sqlMap文件引入的标签如下: <!DOCTYPE sqlMap ...

  3. .Net“/”应用程序中的服务器错误 超过了最大请求长度 错误解决办法

    错误如下: 错误提示: 说明: 执行当前 Web 请求期间,出现未处理的异常.请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息. 异常详细信息: System.Web.HttpE ...

  4. [Docker] docker 基础学习笔记4(共6篇)

    离线安装nginx   apache 如何启动war包   linux 离线升级内核   nginx和Apache的使用   nginx 的负载均衡配置 是如此的简单,比weblogic的要简单100 ...

  5. CTO对话:云端融合下的移动技术创新

    云端融合真的来了?快听CTO们怎么讲云端融合下,技术创新怎么破? 快听CTO箴言  云喊了很多年,对于很多普通的技术人,心中有很多疑问:云端融合到底意味着什么,对公司的技术体系有什么影响,未来又会走向 ...

  6. laravel(一):如何安装laravel

    1.前提条件 本文针对想从零开始开发 Laravel 程序的初学者,不需要预先具备任何的 Laravel 使用经验.不过,为了能顺利阅读,还是需要事先安装好一些软件: PHP 5.4 及以上版本 包管 ...

  7. PostrgreSQL 表名大小些问题(public."tablename")

    问题: 今天做表查询的时候,发现用以前的代码查询出现问题,提示说表名不存在. 现象: 通过PostrgreSQL客户端查询,发现出问题的表的查询语句如下: SELECT * FROM public.& ...

  8. The Zero

    TOday is just a alpha, but there isnot 欧米伽. 编程,是你选的,是你学的,也是你喜欢的,更是你追求的.为什么要放弃塔!. 加油! 为自己. #include&l ...

  9. DataGridView控件内建立日期选择编辑列

    两个文件: CalendarColumn 类: public class CalendarColumn : DataGridViewColumn { public CalendarColumn() : ...

  10. setValuesForKeysWithDictionary 的用法

    字典的快速赋值 setValuesForKeysWithDictionary 字数918 阅读6604 评论6 喜欢32 前言 在学习解析数据的时候,我们经常是这么写的:PersonModel.h文件 ...