如果目标表sql中没有源值,则插入目标表

时间:2013-03-12 11:19:59

标签: sql sql-server sql-server-2008

我正在尝试将表中的数据插入到另一个表中,但我正在寻找一个查询,该查询可以首先查看目标中是否存在源值,如果存在则不应加载。

假设我在源代码中有以下内容

ID|EMAIL|COUNTRY|PHONE
1|s@s.com|US|1212

现在检查上面的电子邮件是否存在于目标表中,如果没有加载它。

等待你的回答。

2 个答案:

答案 0 :(得分:2)

您可以使用MERGE声明

MERGE table2 AS target
USING table1 AS source
    ON (target.email = source.email)  
WHEN NOT MATCHED BY TARGET 
    THEN INSERT (
        email, 
        country, 
        Phone
    ) VALUES (
        source.email, 
        source.country, 
        source.phone
    );

答案 1 :(得分:1)

简单加入也将完成工作

INSERT INTO <TblDestination>
SELECT src.Email
FROM <TblSource> src
    LEFT JOIN <TblDestination> dst ON src.Email = dst.Email
WHERE dst.Email IS NULL