試了好幾次,寫好的 MERGE 命令語法完~~~~全不能用。
去爬文後,看到的答案,大多都是說「不支援SQL 2005」。
既然 MERGE 這個命令語法,不支援SQL 2005。
就記錄一下,以備日後可以參考。
/* MERGE 命令語法 */
MERGE M目標_產品資料 AS T
USING M來源_產品資料 AS S
ON T.產品編號= S.產品編號
/* 當目標資料表與來源資料表條件吻合時,執行下面動作。*/
WHEN MATCHED
THEN UPDATE
SET T.產品名稱=S.產品名稱, T.單價=S.單價
/* 當目標資料表(T)中不存,來源資料表(S)中有的產品編號時,執行下面動作。*/
WHEN NOT MATCHED BY TARGET
THEN INSERT (產品編號, 產品名稱, 單價,)
VALUES (S.產品編號, S.產品名稱, S.單價, 0)
/* 當目標資料表(T)中存在,來源資料表(S)不存在此產品編號時,執行下面動作。*/
WHEN NOT MATCHED BY SOURCE
THEN DELETE
; /* 一定要加分號做結尾,否則會出錯。 */
雖然還沒機會可以使用,但MERGE看起來就是可以一次比對完兩個資料表中的差異,並且將來源資料表(SOURCE)中的結果,異動到目標資料表(TARGET),完成UPDATE、INSERT、DELETE等動作。
沒有留言:
張貼留言