A ver prueba asi:
Código SQL:
Ver originalINSERT INTO [Movimiento_Personas].[dbo].[personas_antiguas] ([id_cod],[verif],[nombre],[edad])
SELECT *
FROM (
SELECT DISTINCT CONVERT(INT,SUBSTRING(N.cod,0,CHARINDEX('-', N.cod)))
,SUBSTRING(N.cod,CHARINDEX('-', N.cod)+1,LEN(N.cod))
,N.nombre
,N.edad
FROM [Movimiento_Personas].[dbo].[personas_nuevas]
) N
WHERE NOT EXISTS(
SELECT 1 FROM [Movimiento_Personas].[dbo].[personas_antiguas] A
WHERE A.id_cod = CONVERT(INT,SUBSTRING(N.cod,0,CHARINDEX('-', N.cod)))
)
Aunque me late que no va a funcionar. Mejor ponme unos registros de ejemplo.