Merge语法是对插入,更新,删除这三个操作的合并。根据与源表联接的结果,对目标表执行插入、更新或删除操作。例如,根据在另一个表中找到的差异在一个表中插入、更新或删除行,可以对两个表进行同步。 我这里用一个简单的例子来解释一下 USE tempdb GO --创建一个临时的订单表来源:www.examda.com 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.--如果来源表无法匹配到,就删除