小编典典

如果记录存在,则更新其他插入

sql

我正在尝试在两个SQL Server
2008表之间移动一些数据。如果该记录存​​在于表2中,并且带有来自表1的电子邮件,则使用来自表1的数据更新该记录,否则插入新记录。

在表1中,我有许多列;名字,姓氏,电子邮件等。

我不确定如何构造查询以更新Table2(如果来自Table1的电子邮件存在)或插入新行(如果Table2中不存在来自Table1的电子邮件)。

我尝试在Google上进行一些搜索,但是大多数解决方案似乎都可以通过创建一些存储过程来工作。因此,我想知道是否有人会知道如何构建合适的查询来解决问题?


阅读 148

收藏
2021-03-23

共1个答案

小编典典

MERGE
INTO    table2 t2
USING   table1 t1
ON      t2.email = t1.email
WHEN MATCHED THEN
UPDATE
SET     t2.col1 = t1.col1,
        t2.col2 = t1.col2
WHEN NOT MATCHED THEN
INSERT  (col1, col2)
VALUES  (t1.col1, t1.col2)
2021-03-23