簡體   English   中英

T-SQL合並-當匹配的更新列不匹配時,插入整行

[英]T-SQL Merge - when matched update column and when not matched insert entire row

我有兩個桌子。

DummyTable

Column1 | Column2 | Column3
a       | b       | c

GoodTable

Column1 | Column2 | Column3
a       | b       | c

我是T-SQL的新手,在執行以下操作時需要幫助;

通過使用條件將數據從DummyTable合並到GoodTable

  • 條件:當DummyTable的Column2匹配GoodTable的Column2時,
    用DummyTable的第3列更新GoodTable的Column3,否則不匹配,將DummyTable的行插入GoodTable

下面是我不工作的嘗試

MERGE INTO GoodTable AS Target
USING (VALUES (SELECT Column2 FROM DummyTable)) AS source (Column2)
ON Target.Column2 = Source.Column2
WHEN MATCHED BY TARGET THEN
UPDATE (Column2) VALUES (Column2)
WHEN NOT MATCHED BY TARGET THEN
INSERT INTO GoodTable VALUES DummyTable

看看這是否適合您。 這是基於您上面的邏輯。

MERGE INTO GoodTable AS Target
USING DummyTable AS Source
ON Target.Column2 = Source.Column2
WHEN MATCHED THEN
UPDATE SET Column3 = source.Column3
WHEN NOT MATCHED THEN
INSERT (Column1,Column2,Column3) --Column names in target table
VALUES (Column1,Column2,Column3); --Column names in source table

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM