我正在尝试在两个SQL Server 2008表之间移动一些数据。如果该记录存在于表2中,并且带有来自表1的电子邮件,则使用来自表1的数据更新该记录,否则插入新记录。
在表1中,我有许多列;名字,姓氏,电子邮件等。
我不确定如何构造查询以更新Table2(如果来自Table1的电子邮件存在)或插入新行(如果Table2中不存在来自Table1的电子邮件)。
我尝试在Google上进行一些搜索,但是大多数解决方案似乎都可以通过创建一些存储过程来工作。因此,我想知道是否有人会知道如何构建合适的查询来解决问题?
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)