Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Query di aggiornamento SQL e "sottoquery ha restituito più di un valore"

La tua sottoquery non è affatto correlata. L'identificatore "TableA.key" nella sottoquery fa riferimento a TableA nella clausola FROM della sottoquery, non alla tabella di destinazione dell'aggiornamento (che è anche TableA). Non vuoi aggiornare TableA.field con il set di risultati di un join a due tabelle. Vuoi semplicemente questo:

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