merge關鍵字是乙個神奇的dml關鍵字。它在sql server 2008被引入,它能將insert,update,delete簡單的並為一句。msdn對於merge的解釋非常的短小精悍:」根據與源表聯接的結果,對目標表執行插入、更新或刪除操作。例如,根據在另乙個表中找到的差異在乙個表中插入、更新或刪除行,可以對兩個表進行同步。」,通過這個描述,我們可以看出merge是關於對於兩個表之間的資料進行操作的。
可以想象出,需要使用merge的場景比如:
merge into語法如下:
merge intotable_name alias1
using(table|view|sub_query) alias2
on(join condition)
when matched then
update
setcol1 = col1_val1,
col2 = col2_val2
when not matched then
insert(column_list)values(column_values);
其中,table_name 指的是更新的表,using()裡邊的指的是資料**表/檢視/子查詢結果集,condition指的是連線條件,如果滿足連線條件,set 欄位1=值1,欄位2=值2..
例項如下:
merge into gdps_memberbank c
using dual
on (c.cltno= #cltno#)
when matched then
update
set c.mb_flag=mb_flag
where c.cltno=#cltno#
when not matched then
insert(cltno,mb_flag)
values (#cltno#,#mb_flag#)
在gdp_memberbank目標表和dual源表中查詢cltno是否用相同欄位的資訊,有的話執行update,沒有的話執行insert;
SQL中Merge的用法
merge關鍵字是乙個神奇的dml關鍵字。它在sql server 2008被引入,它能將insert,update,delete簡單的並為一句。msdn對於merge的解釋非常的短小精悍 根據與源表聯接的結果,對目標表執行插入 更新或刪除操作。例如,根據在另乙個表中找到的差異在乙個表中插入 更新或...
SQL中Merge的用法
merge關鍵字是乙個神奇的dml關鍵字。它在sql server 2008被引入,它能將insert,update,delete簡單的並為一句。msdn對於merge的解釋非常的短小精悍 根據與源表聯接的結果,對目標表執行插入 更新或刪除操作。例如,根據在另乙個表中找到的差異在乙個表中插入 更新或...
SQL中Merge的用法
merge關鍵字是乙個神奇的dml關鍵字。它在sql server 2008被引入,它能將insert,update,delete簡單的並為一句。msdn對於merge的解釋非常的短小精悍 根據與源表聯接的結果,對目標表執行插入 更新或刪除操作。例如,根據在另乙個表中找到的差異在乙個表中插入 更新或...