SqlServer中merge關鍵字

2022-02-06 18:53:37 字數 1261 閱讀 2550

在一些業務中,經常會用到對資料的比對,不存在插入,在源表中存在則更新,在源表不存在目標表存在則刪除,一般都是會通過if else判斷,

merge關鍵字是乙個神奇的dml關鍵字。它在sql server 2008被引入,它能將insert,update,delete簡單的並為一句。

首先建立兩張表,源表(sourcetable)和目標表(targettable)

其中sourcetable資料如下

targettable資料如下

merge進行資料操作

merge into targettable as t

using sourcetable as s

on t.id=s.id

when matched

then update set t.note=s.note

when not matched

then insert values(s.id,s.note)

when not matched by source

then delete;

結果如下:

merge還有乙個強大的功能是通過output子句,可以將剛剛做過變動的資料進行輸出

merge into targettable as t

using sourcetable as s

on t.id=s.id

when matched

then update set t.note=s.note

when not matched

then insert values(s.id,s.note)

when not matched by source

then delete

output $action as [action],inserted.id,

inserted.note,

deleted.id,

deleted.note;

操作結果如下:

當然,你也可以僅僅新增或是僅僅刪除

merge into targettable as t

using sourcetable as s

on t.id=s.id

when not matched

then insert values(s.id,s.note);

SqlServer 2008 中Merge的應用

簡介 sqlserver 2008中新增加了merge這個dml關鍵字,msdn對於merge的解釋 根據與源表聯結的結果,對目標表執行insert,update,delete操作.例如 根據目標表與源表的差異,在目標表中執行執行insert,update,delete操作,實現兩個表的同步.語法 ...

Sql Server 2008 中Merge的用法

本文摘自其它 sql server 2008中的merge語句能做很多事情,它的功能是根據源表對目標表執行插入 更新或刪除操作。最典型的應用就是進行兩個表的同步。下面通過乙個簡單示例來演示merge語句的使用方法,假設資料庫中有兩個表product及productnew,我們的任務是將product...

SQL Server中的Merge關鍵字

merge關鍵字是乙個神奇的dml關鍵字。它在sql server 2008被引入,它能將insert,update,delete簡單的並為一句。msdn對於merge的解釋非常的短小精悍 根據與源表聯接的結果,對目標表執行插入 更新或刪除操作。例如,根據在另乙個表中找到的差異在乙個表中插入 更新或...