SQL2008中Merge的用法

2021-07-01 23:00:53 字數 1462 閱讀 6485

在sql2008中,新增了乙個關鍵字:merge,這個和oracle的merge的用法差不多,只是新增了乙個delete方法而已。下面就是具體的使用說明:

首先是對merge的使用說明:

merge  

[into][

目標表]

using

<

源on條件

when

matched 操作

when

notmatched 操作;

首先,請參看兩張表 tablethis和tablethat:

可以看到,這兩張表中的內容還是比較簡單的,兩張表通過乙個tbthisid進行主鍵和外來鍵的關聯,那麼如如果想實現二者之間的資料同步,該如何進行呢,請看具體的merge**:

merge 

into

tablethat

asa

using tablethis asb

ona.tbthisid

=b.tbthisid

when

matched

then

update

seta.tbcontent

=a.tbcontent+'

-'+b.tbthisphone

when

notmatched

then

insert

(tbthisid,tbcontent)

values

(b.tbthisid,b.tbthisphone);

這樣  就可以將兩個表中間的資料進行同步並且進行更新,確實很方便,最終得到結果為:

但是如果想讓匹配的資料刪除掉,並且如果子表中沒有資料就插入,這個該如何用呢,當然得涉及到delete的操作了:

merge 

into

tablethat

asa

using tablethis asb

ona.tbthisid

=b.tbthisid

when

matched

then

delete

when

notmatched

then

insert

(tbthisid,tbcontent)

values

(b.tbthisid,b.tbthisphone);

這樣得到的結果為:

希望有用。

SQL2008中Merge的用法

在sql2008中,新增了乙個關鍵字 merge,這個和oracle的merge的用法差不多,只是新增了乙個delete方法而已。下面就是具體的使用說明 首先是對merge的使用說明 merge into 目標表 using 源on條件 when matched 操作 when notmatched...

SQL2008中Merge的用法

在sql2008中,新增了乙個關鍵字 merge,這個和oracle的merge的用法差不多,只是新增了乙個delete方法而已。下面就是具體的使用說明 首先是對merge的使用說明 merge into 目標表 using 源on條件 when matched 操作 when notmatched...

SQL2008中Merge的用法

在sql2008中,新增了乙個關鍵字 merge,這個和oracle的merge的用法差不多,只是新增了乙個delete方法而已。下面就是具體的使用說明 首先是對merge的使用說明 merge into 目標表 using 源on條件 這個條件一般指對目標表的限制,如果想對原表限制,請 源表 中使...