Merge在Sqlserver使用例子说明

---文章 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;

时间: 2024-11-05 18:50:46

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

EF6 SqlServer 简单例子 和 支持的原生sql例子

总体结构如图: 1. 使用NuGet添加EF6 2. 添加实体Model public class User_Model { public int ID { get; set; } public string S_UserID { get; set; } public int Sex { get; set; } public string Phone { get; set; } public int Age { get; set; } public DateTime? AddDateTime {

sqlserver 存储过程例子

//带参数的小列子 if (exists (select * from sys.objects where name = 'proc_get_Purchasing2')) drop proc proc_get_student go alter proc proc_get_Purchasing2(@today int) as --declare @today int //申明变量 declare @weeks nvarchar(3) //设置变量值 set @weeks set @weeks=ca

联动二级菜单实现

参照美团app下拉式的二级列表菜单,公司项目中也有这种菜单的需求                    1,结构分析 首先,我们给出这个下来菜单需要的组建.我们用线框图来分析. 1)如上图所示,最外围的是一个Activity,顶部包含了一个View的容器,这个容器主要是装载ToggleButton来实现诸如美团里面的“美食,全城,理我最近,刷选”这一行.这一行一点就会弹出对应的下来菜单. 2)下拉菜单是如何实现的呢?,这里我们利用了PopupWindow来实现这一弹出式窗口.然后我们在弹出式窗口

oo的一些概念

http://docs.kissyui.com/5.0/guides/base/oo.html JavaScript 语言自成体系,自有一套代码重用的模式,这些常见的代码重用模式可以在<Javascript 设计模式>.<JavaScript 编程模式>中找到理论基础.KISSY 即是实践了这些典型的代码重用模式,并作为 KISSY 代码库的面向对象的核心,向高层代码提供语言的完备性支撑. 这些理论基础大都来自"javascript 编程模式"一书: KISSY

MySQL/MariaDB视图

本文目录:1.创建.修改视图2.视图算法merge.temptable3.删除.查看视图信息4.检查无效视图 视图是表表达式的一种,所以它也是虚拟表.对视图操作的时候会通过语句动态的从表中临时获取数据. 1.创建.修改视图 CREATE [OR REPLACE] [ALGORITHM = {UNDEFINED | MERGE | TEMPTABLE}] VIEW [IF NOT EXISTS] view_name [(column_list)] AS select_statement [WITH

ServiceStack 多租户的实现方案

以SqlServer为例子说明ServiceStack实现多租户,在SqlServer中创建4个Database:TMaster.T1,T2,T3,为了安全起见 每个Database不用sa账号,而是用独立的数据库的账号和密码,为了方便演示这密码设置成一样 租户TMaster Database:TMaster  账号密码: User Id=TMaster;Password=t123 租户T1 Database:T1  账号密码: User Id=T1;Password=t123 租户T2 Dat

SQLServer 2008中SQL增强之三 Merge(在一条语句中使用

SQLServer 2008中SQL增强之三 Merge(在一条语句中使用Insert,Update,Delete) SQL Server 2008提供了一个增强的SQL命令Merge,用法参看MSDN:http://msdn.microsoft.com/zh-cn/library/bb510625.aspx 功能:根据与源表联接的结果,对目标表执行插入.更新或删除操作.例如,根据在另一个表中找到的差异在一个表中插入.更新或删除行,可以对两个表进行同步. 我们看一个例子,假如,有一总产品列表,一

SqlServer中的merge操作(转载)

SqlServer中的merge操作(转载) 今天在一个存储过程中看见了merge这个关键字,第一个想法是,这个是配置管理中的概念吗,把相邻两次的更改合并到一起.后来在technet上搜索发现别有洞天,原来是另外一个sql关键字,t-sql的语法还是相当地丰富的.本篇是一篇学习笔记,没有什么新意,这里给出technet上的地址连接供大家参考权威:http://technet.microsoft.com/zh-cn/library/bb510625.aspx,这里具体的语法不去深究了,只是把几个例

SQL点滴18—SqlServer中的merge操作,相当地风骚

原文:SQL点滴18-SqlServer中的merge操作,相当地风骚 今天在一个存储过程中看见了merge这个关键字,第一个想法是,这个是配置管理中的概念吗,把相邻两次的更改合并到一起.后来在technet上搜索发现别有洞天,原来是另外一个sql关键字,t-sql的语法还是相当地丰富的.本篇是一篇学习笔记,没有什么新意,这里给出technet上的地址连接供大家参考权威:http://technet.microsoft.com/zh-cn/library/bb510625.aspx,这里具体的语