MERGE INTO的用法
阿新 • • 發佈:2022-04-12
語法:
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:複雜查詢條件的資料批量插入/更新