Hola cetopi
No entiendo para que declaras tablaprincipal en la consulta. Para mi sería así
Código SQL:
Ver originalINSERT INTO tablaprincipal (campo1,campo2)
SELECT DISTINCT [tablasecundaria].campo1, [tablasecundaria].campo2
FROM tablasecundaria
WHERE tablasecundaria.campo1 NOT IN (SELECT tablaprincipal.campo1 FROM tablaprincipal);
Otra cosa que puedes probar si el problema es de rendimiento es:
Código SQL:
Ver originalINSERT INTO tablaprincipal (campo1,campo2)
SELECT DISTINCT [tablasecundaria].campo1, [tablasecundaria].campo2
FROM tablasecundaria
LEFT JOIN
tablaprincipal
ON tablasecundaria.campo1=tabolaprincipal.campo1
WHERE tablasecundaria.campo2 IS NOT NULL;
No lo he probado