天天看點

Merge Into

Merge Into [dbo].[Student] S
using [10.58.8.224\TEST].[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操作

作者:釋迦苦僧

出處:http://www.cnblogs.com/woxpp

本文版權歸作者和部落格園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接配接。

生活不易,五行缺金,求打點

Merge Into