我需要執行一個查詢,如下所示。列KEY1和KEY2是不能重複的鍵。如果有鍵匹配,我需要執行更新VAL而不是插入。我怎麼能在SQL Server中做到這一點?在Sql Server中插入或更新多行
INSERT INTO tableA
(
KEY1,
KEY2,
VAL,
) VALUES (
-- Row A
'datakeyA1',
'datakeyA2',
'somevaluetoinsertorupdate'
) , (
-- Row B
'datakeyB1',
'datakeyB2',
'somevaluetoinsertorupdate'
) , (
-- Row C
'datakeyC1',
'datakeyC2',
'somevaluetoinsertorupdate'
);
我試過使用MERGE,但看着語法,我不確定它是否支持更新/插入多行。如果有人在過去遇到類似的情況,請幫忙嗎?
編輯:
如果我使用MySQL,我剛使用:
ON DUPLICATE KEY UPDATE
VAL = VALUES(VAL)
查詢
。
MERGE支持多行。爲什麼不呢? – 2014-11-25 11:00:00
你是不是想'批量插入/ Update' – Rajesh 2014-11-25 11:08:24
我試過'WHEN NOT然後再配 INSERT(KEY1,KEY2,VAL) VALUES( 'datakeyA1', 'datakeyA1', 'datakeyA1'),( 'datakeyB1',「datakeyB1 ','datakeyB1');'。這似乎是一個無效的語法。 – devnull 2014-11-25 11:10:22