1. 程式人生 > 其它 >MERGE INTO的用法

MERGE INTO的用法

語法:

MERGE INTO [目標表]  [別名A] 
USING (
            -- 條件為真的查詢語句
           SELECT ...
             FROM ...
            WHERE ...
          )  [別名B]  
ON (
        --判斷條件
          [別名A].[欄位1] = [別名B].[欄位1]
      AND [別名A].[欄位2] = [別名B].[欄位2]
      AND [別名A].[欄位3] = [別名B].[欄位3]
      )
WHEN MATCHED THEN
--符合條件時 UPDATE SET [別名A].[欄位4] = [別名B].[欄位4] ,[別名A].[欄位5] = [別名B].[欄位5] WHEN NOT MATCHED THEN --不符合條件時 INSERT INTO ( [別名A].[欄位1] ,[別名A].[欄位2] ,[別名A].[欄位3] ,[別名A].[欄位4] ,[別名A].[欄位5] ) VALUES ( [別名B].[欄位1] ,[別名B].[欄位2
] ,[別名B].[欄位3] ,[別名B].[欄位4] ,[別名B].[欄位5] )

注意:

1:其中的"WHEN MATCHED" 和 "WHEN NOT MATCHED"是可選的,並非都必須存在的

2:因為第一句已經將要操作的目標表已經定義好了,因此,在後面的INSERT/UPDATE/DELETE操作中,不需要再寫表名

(是的,你沒看錯,還能做DELETE操作,不過我還不會,等有機會了我再補充)

使用場景:

1:最常用的場景就是,傳入的資料,不需要再進行查詢,然後判斷資料是否存在,然後再進行插入和更新的操作

2:複雜查詢條件的資料批量插入/更新