TSQL: Comment faire une mise à jour basée sur une string et une date?

On m'a donné une feuille de calcul des élèves où 500 élèves n'ont pas de carte d'étudiant. J'ai importé cela dans SQL comme une table, je l'appellerai "table a".

J'ai une autre table avec tous les étudiants et leurs ID, avec la date de naissance, etc. Je l'appellerai "table b".

Objectif:
Copiez les identifiants de l'étudiant de la table b dans la table a. Pour ce faire, je pense que je dois mettre à jour la table en fonction du nom et de la date de naissance de l'étudiant.

Problème:
Ma requête de mise à jour duplique les identifiants des étudiants aux étudiants qui ont la même date de naissance, mais ils ont des noms de famille différents. Donc le résultat est que deux étudiants différents avec la même date de naissance finissent par avoir le même id étudiant.

Comment puis-je mettre à jour la table a avec le bon ID d'étudiant s'il vous plaît?

Ma déclaration de mise à jour actuelle qui met des identifiants en double sur le même étudiant:

UPDATE table a SET EMPStudentID = CAStudentID FROM #students WHERE EmpStudentName = CA_STUNAME AND EMP_DOB = CA_DOB 

Je vous remercie.

Capture d'écran des données d'échantillon: entrez la description de l'image ici

Code des données d'échantillon:

 CREATE TABLE #students ( EMPStudentID int , EmpStudentName varchar(30) , EMP_DOB DATE , CA_DOB DATE , CA_STUNAME VARCHAR(30) , CAStudentID int ) INSERT INTO #students (EmpStudentName ,EMP_DOB ,CA_DOB ,CA_STUNAME ,CAStudentID) VALUES ('Brothers, John', '20000309', '20000309', 'Brothers, John', 1111111), ('Campbell, Thomas', '20000107', '20000107', 'Campbell, Thomas', 2222222), ('Echols, Terry', '20000309', '20000309', 'Echols, Terry', 3333333), ('Jones, Bruce', '20000518', '20000518', 'Jones, Bruce', 4444444), ('Maxwell, Lauren', '20000728', '20000728', 'Maxwell, Lauren', 5555555), ('Feldler, John', '19991026', '19991026', 'Feldler, John', 6666666), ('Jenkins, Michael', '19990322', '19990322', 'Jenkins, Michael', 7777777), ('Taylor, Greg', '20000428', '20000428', 'Taylor, Greg', 8888888), ('Williams, Gene', '20000105', '20000105', 'Williams, Gene', 9999999), ('Wynn, Charles', '20000111', '20000111', 'Wynn, Charles', 1233211) SELECT * FROM #students 

Essayez ceci ci-dessous

 UPDATE S SET EMPStudentID = A.CAStudentID FROM #students S INNER JOIN #TableA A ON S.EmpStudentName = A.CA_STUNAME AND S.EMP_DOB = A.CA_DOB SELECT * FROM #students