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
本文版權歸作者和部落格園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接配接。
生活不易,五行缺金,求打點