zoukankan      html  css  js  c++  java
  • SQL Server 2008 TSQL之Merge语法

    Merge语法是对插入,更新,删除这三个操作的合并。根据与源表联接的结果,对目标表执行插入、更新或删除操作。例如,根据在另一个表中找到的差异在一个表中插入、更新或删除行,可以对两个表进行同步。

    我这里用一个简单的例子来解释一下

    USE tempdb
    GO
    --创建一个临时的订单表
    CREATE TABLE Orders(OrderID INT,CustomerID NCHAR(5))
    GO
    --往这个表中添加两行记录
    INSERT INTO Orders VALUES(1,N'AAAAA')
    INSERT INTO Orders VALUES(2,N'BBBBB')
    GO
    --通过生成表查询,产生另外一个架构一模一样的表,但只是复制了第一行数据过去
    SELECT * INTO Orders2 FROM Orders WHERE OrderID=1
    GO
    --将第二个表的数据进行更新
    UPDATE orders2 SET CustomerID=N'DDDDD'
    --合并两个表
    MERGE Orders o
    USING Orders2 o2 ON o2.OrderID=o.OrderID
    WHEN MATCHED THEN UPDATE SET O.CustomerID=o2.CustomerID--如果匹配到了,就更新掉目标表
    WHEN NOT MATCHED THEN INSERT VALUES(o2.OrderID,o2.CustomerID)--如果匹配不到,就插入
    WHEN NOT MATCHED BY SOURCE THEN DELETE;--如果来源表无法匹配到,就删除

  • 相关阅读:
    这些例子很炫,感兴趣的童鞋可以了解一下
    Java经典习题24
    Java经典习题23
    Java经典练习题22
    Java经典习题21
    Java经典习题20
    Java经典练习题19
    Java经典练习题18
    Java经典习题17
    Java经典习题16
  • 原文地址:https://www.cnblogs.com/chenxizhang/p/1444020.html
Copyright © 2011-2022 走看看