Ahi ya son 2 casos diferentes, uno es para cuando los repetidos vienen en la 1er tabla y el segundo es cuando ya tienes datos en la segunda tabla, para eso podriamos hacer esto:
Código SQL:
Ver originalCREATE TABLE #Aux
(
Id INT IDENTITY(1,1)
,Nombre VARCHAR(50)
,Apellido VARCHAR(50)
,Dni INT
)
INSERT INTO #Aux VALUES ('Juan', 'Claros', 12345);
INSERT INTO #Aux VALUES ('Pedro', 'Caceres', 82315);
INSERT INTO #Aux VALUES ('Gabriela', 'Romero', 73345);
INSERT INTO #Aux VALUES ('Juan', 'Claros', 12345);
INSERT INTO #Aux VALUES ('Alejandro', 'Gonzales', 80315);
INSERT INTO #Aux VALUES ('Pedro', 'Caceres', 82315);
CREATE TABLE #Aux1
(
Id INT IDENTITY(1,1)
,Nombre VARCHAR(50)
,Apellido VARCHAR(50)
,Dni INT
)
INSERT INTO #Aux1
SELECT nombre, apellido, dni FROM(
SELECT A.Nombre
,A.Apellido
,A.Dni, ROW_NUMBER() OVER(partition BY a.nombre,a.apellido, a.dni ORDER BY a.nombre,a.apellido, a.dni) AS rn
FROM #Aux A
LEFT JOIN #aux1 AS B ON (a.nombre=b.nombre AND a.Apellido=b.Apellido AND a.Dni=b.Dni)
WHERE b.nombre IS NULL AND b.Apellido IS NULL AND b.dni IS NULL
) AS t1 WHERE rn=1