SQL如果行不重复,则将行插入另一个表中

-2 sql t-sql sql-server sql-insert

您好我无法弄清楚如何从一个表到另一个表插入不重复的行,我想到这样的事情

INSERT INTO Table1
       SELECT id, name, lastname FROM Table2
              WHERE id.Table1 != id.Table2 
              AND name.Table1 != name.Table2 
              AND lastname.Table1 != lastname.Table2
Run Code Online (Sandbox Code Playgroud)

如果它已经存在,如何编写指定不插入的条件?

编辑:我忘了提到我需要只匹配某些列,因为表包含标识1,1我的解决方案如下:

    MERGE Table1 as t1
    USING (SELECT name, lastname FROM Table2) AS t2 (name, lastname) 
    ON t1.[name] = t2.[name] AND t1.[lastname] = t2.[lastname] 
    WHEN NOT MATCHED 
    THEN
    INSERT (name, lastname) VALUES (t2.[name], t2.[lastname]);
Run Code Online (Sandbox Code Playgroud)

当然,这只是一个例子,我使用了更多的列和数据

编辑:不重复,因为所提供的解决方案与整个表格匹配

Mur*_*nik 5

解决这个问题的一种方法是使用except运算符:

INSERT INTO Table1
SELECT id, name, lastname FROM Table2
EXCEPT
SELECT id, name, lastname FROM Table1
Run Code Online (Sandbox Code Playgroud)