Insérer des lignes dans la table si elles ne sont pas trouvées dans une autre table

J'ai une table

Employee (employeeID) EmployeeRank (rankID, employeeID) 

Maintenant j'ai une autre table qui a tous les employés qui vont get une augmentation.

 DueForRaise (rankID, employeeID) 

Je dois insert tous les employés qui sont dans DUeForRaise dans la table EmployeeRank SEULEMENT s'ils ne sont pas déjà là avec le même rang.

Je fais cette mise à jour pour un rankID particulier, @rankID.

Cela fonctionnerait-il?

 INSERT EmployeeRank ( rankID, employeeID) SELECT rankID, employeeID FROM DueForRaise dfr OUTER JOIN EmployeeRank er er.employeeid = dfr.employeeid) WHERE dfr.rankID = @rankID 

Que diriez-vous:

 insert into EmployeeRank select * from DueForRaise p where NOT EXISTS( SELECT * FROM EmployeeRank WHERE rankID=p.rankID and employeeID=p.employeeID ); 

SI NON EXISTE (SELECT * FROM EmployeeRank O rank rankID = @rankID ET employeeID = @employeeID)

INSÉRER DANS EmployeeRank (rankID, employeeID) VALEURS (@rankID, @employeeID)