在SQL2008中,新增了一個關鍵字:Merge,這個和Oracle的Merge的用法差很少,只是新增了一個delete方法而已。下面就是具體的使用說明:spa
首先是對merge的使用說明:code
merge [into] [目標表]
using <源表>
on 條件
when matched 操做
when not matched 操做;
首先,請參看兩張表 TableThis和TableThat:blog
能夠看到,這兩張表中的內容仍是比較簡單的,兩張表經過一個tbThisID進行主鍵和外鍵的關聯,那麼如若是想實現兩者之間的數據同步,該如何進行呢,請看具體的Merge代碼:同步
merge into TableThat as a
using TableThis as b
on a.tbThisID = b.tbThisID
when matched then
update set a.tbContent=a.tbContent+'-'+b.tbThisPhone
when not matched then
insert (tbThisID,tbContent)
values(b.tbThisID,b.tbThisPhone);
這樣 就能夠將兩個表中間的數據進行同步而且進行更新,確實很方便,最終獲得結果爲:it
可是若是想讓匹配的數據刪除掉,而且若是子表中沒有數據就插入,這個該如何用呢,固然得涉及到delete的操做了:class
merge into TableThat as a
using TableThis as b
on a.tbThisID = b.tbThisID
when matched then
delete
when not matched then
insert (tbThisID,tbContent)
values(b.tbThisID,b.tbThisPhone);
這樣獲得的結果爲:date
但願有用。方法