1
我有兩個表:對排除行進行修改的Upsert?
表1:
ID ColA ColB Status
表2:
ColA ColB
我從表2到表1試圖MERGE
記錄的方式如下:
- 對於表2存在於表中的每一行1,我設置
Status = 1
- 對於每一行中表2不存在於表1中,我插入一行到表1並設置
Status = 1
- 對於每一行中表1不存在於表2,設置
Status = 0
在一個聲明中可以這樣做嗎?目前,我能夠實現1
和2
但我不知道怎麼去第三個還有:
MERGE INTO dbo.Table1 WITH(HOLDLOCK) AS Target
USING dbo.Table2 AS Source
ON Target.ColA = Source.ColA AND Target.ColB = Source.ColB
WHEN MATCHED THEN
UPDATE SET Target.Status = 1
WHEN NOT MATCHED THEN
INSERT (ColA, ColB, Status) VALUES(Source.ColA, Source.ColB, 1);
如何實現在同一個語句3
有什麼建議?
+1太棒了!謝謝你的時間... – Legend 2012-08-13 03:28:37
有一段時間,我認爲'NOT MATCHED BY SOURCE'中的'SOURCE'是'Source'別名!以防萬一,其他任何人都面臨這樣的問題 - 「不匹配SOURCE」是一個內置表達式。 – Legend 2012-08-13 08:51:22