博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MERGE
阅读量:5843 次
发布时间:2019-06-18

本文共 1743 字,大约阅读时间需要 5 分钟。

 

 Merge关键字是一个神奇的DML关键字。它在SQL Server 2008被引入,它能将Insert,Update,Delete简单的并为一句。MSDN对于Merge的解释非常的短小精悍:”根据与源表联接的结果,对目标表执行插入、更新或删除操作。例如,根据在另一个表中找到的差异在一个表中插入、更新或删除行,可以对两个表进行同步。”,通过这个描述,我们可以看出Merge是关于对于两个表之间的数据进行操作的。

 

    可以想象出,需要使用Merge的场景比如:

 
  •     数据同步
  •     数据转换
  •     基于源表对目标表做Insert,Update,Delete操作
CREATE TABLE TargetTable (StudentID       NVARCHAR(20),StudentName     NVARCHAR(20),StudentScore    INT,Remark          NVARCHAR(20),InsertTime      DATETIME,UpdateTime      DATETIME)CREATE TABLE SourceTable (StudentID       NVARCHAR(20),StudentName     NVARCHAR(20),StudentScore    INT,Remark          NVARCHAR(20),InsertTime      DATETIME,UpdateTime      DATETIME)INSERT INTO TargetTable SELECT '1001','张三',45,'数学',dateadd(DD,2,GETDATE()),dateadd(hh,8,GETDATE())INSERT INTO TargetTable SELECT '1002','李四',75,'英语',dateadd(DD,2,GETDATE()),dateadd(hh,8,GETDATE())--INSERT INTO TargetTable SELECT '1003','王五',95,'化学',dateadd(hh,2,GETDATE()),dateadd(hh,2,GETDATE())INSERT INTO SourceTable SELECT '1001','张三',77,'数学',dateadd(DD,2,GETDATE()),dateadd(hh,8,GETDATE())INSERT INTO SourceTable SELECT '1002','李四',75,'英语',dateadd(DD,2,GETDATE()),dateadd(hh,8,GETDATE())INSERT INTO SourceTable SELECT '1004','赵柳',97,'数学',dateadd(DD,2,GETDATE()),dateadd(hh,8,GETDATE())SELECT * FROM TargetTable SELECT * FROM SourceTable ;MERGE TargetTable AS ttUSING SourceTable AS stON  tt.StudentID = st.StudentID AND tt.Remark = st.RemarkWHEN MATCHED THEN UPDATE SET StudentScore = st.StudentScore,UpdateTime = '2016-01-11 17:59:15'WHEN NOT MATCHED THENINSERT (StudentID,StudentName,StudentScore,Remark,InsertTime,UpdateTime) VALUES (StudentID,StudentName,StudentScore,Remark,InsertTime,GETDATE());SELECT * FROM TargetTable SELECT * FROM SourceTable

 

转载于:https://www.cnblogs.com/DBArtist/p/MERGE.html

你可能感兴趣的文章
sql 内联,左联,右联,全联
查看>>
C++关于字符串的处理
查看>>
Breaking parallel loops in .NET C# using the Stop method z
查看>>
[轉]redis;mongodb;memcache三者的性能比較
查看>>
让你的WPF程序在Win7下呈现Win8风格主题
查看>>
构建Docker Compose服务堆栈
查看>>
浮点数内存如何存储的
查看>>
问题账户需求分析
查看>>
hp 服务器通过串口重定向功能的使用
查看>>
java中回调函数以及关于包装类的Demo
查看>>
ul下的li浮动,如何是ul有li的高度
查看>>
网站文章如何能自动判定是抄袭?一种算法和实践架构剖析
查看>>
【OpenCV学习】滚动条
查看>>
为找好心人抚养孩子 浙江一离婚父亲将幼童丢弃公园
查看>>
读书:为了那个美妙的咔哒声
查看>>
ASMFD (ASM Filter Driver) Support on OS Platforms (Certification Matrix). (文档 ID 2034681.1)
查看>>
OllyDBG 入门系列教学--让你瞬间成为破解高手
查看>>
listbox用法
查看>>
寻找链表相交节点
查看>>
Linux crontab定时执行任务
查看>>