• Merge Into


    Merge Into [dbo].[Student] S
    using [10.58.8.224TEST].[TestDb].[dbo].[Student] T
    on S.ID=T.ID
    WHEN MATCHED AND (S.[UpdateTime]<>T.[UpdateTime])--匹配上 时间不一致时 更新数据
    THEN UPDATE SET S.[Name]=T.[Name],S.[Age]=T.[Age],S.[Sex]=T.[Sex],S.[UpdateTime]=T.[UpdateTime]
    WHEN NOT MATCHED  --匹配不上 添加数据
    THEN INSERT VALUES(T.[Name],T.[Age],T.[Sex],T.[UpdateTime])
    WHEN NOT MATCHED BY SOURCE --和元数据匹配不上的删除
    THEN DELETE;
    

    参考: http://www.cnblogs.com/CareySon/archive/2012/03/07/2383690.html

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

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

    •     数据同步
    •     数据转换
    •     基于源表对目标表做Insert,Update,Delete操作
  • 相关阅读:
    正则匹配
    curator.zookeeper
    linux tail 命令查看日志 并加上颜色
    k8s一些命令
    k8s文件传递及scp
    Linux下如何在不解压jar包查看或修改配置文件
    MySQL教程之concat以及group_concat的用法
    JavaCV读取流设置超时
    学习html5 canvas 圆环
    jquery使用$.each()
  • 原文地址:https://www.cnblogs.com/woxpp/p/4287525.html
Copyright © 2020-2023  润新知