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;--如果來源表無法匹配到,就刪除

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 hsiung03 的頭像
    hsiung03

    hsiung.博格 ERP軟體

    hsiung03 發表在 痞客邦 留言(0) 人氣()