Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Requête de mise à jour SQL et "la sous-requête a renvoyé plusieurs valeurs"

Votre sous-requête n'est pas corrélée du tout. L'identifiant "TableA.key" dans la sous-requête fait référence à la TableA dans la clause FROM de la sous-requête, et non à la table cible de la mise à jour (qui se trouve également être la TableA). Vous ne souhaitez pas mettre à jour TableA.field avec le jeu de résultats d'une jointure à deux tables. Vous voulez simplement ceci :

UPDATE TableA  
   SET TableA.field = (SELECT TableB.field  
                       FROM TableB
                       WHERE TableA.key = TableB.key)