Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如果目标表sql中没有源值,则插入到目标表中_Sql_Sql Server_Sql Server 2008 - Fatal编程技术网

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

如果目标表sql中没有源值,则插入到目标表中,sql,sql-server,sql-server-2008,Sql,Sql Server,Sql Server 2008,我试图将数据从一个表插入到另一个表中,但我正在寻找一个查询,该查询可以首先查看源值是否在目标中,如果存在,则不应加载 假设我有下面的源代码 ID|EMAIL|COUNTRY|PHONE 1|s@s.com|US|1212 现在检查目标表中是否存在上述电子邮件,如果没有,请加载它 等待您的答案。您可以使用MERGE语句 MERGE table2 AS target USING table1 AS source ON (target.email = source.email) WHEN

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

假设我有下面的源代码

ID|EMAIL|COUNTRY|PHONE
1|s@s.com|US|1212
现在检查目标表中是否存在上述电子邮件,如果没有,请加载它


等待您的答案。

您可以使用
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
    );

简单连接也可以完成这项工作

INSERT INTO <TblDestination>
SELECT src.Email
FROM <TblSource> src
    LEFT JOIN <TblDestination> dst ON src.Email = dst.Email
WHERE dst.Email IS NULL
插入到
选择src.Email
来自src
左键加入src.Email=dst.Email上的dst
其中dst.Email为空

这会将数据从一个表永久插入到另一个表吗是的,会。它会检查源表中的电子邮件是否已存在于目标表中,如果不存在,则会将其插入。如果它已经存在,则不会执行任何操作。然后编辑插入部分以包含这些列,请参阅我的更新答案。您正在使用SQL Server 2008,不是吗?我只是忘了添加分号,因为您必须用它终止
MERGE
语句。其他人则认为它应该起作用。