sql >> Base de Datos >  >> RDS >> Sqlserver

Consulta de actualización de SQL y 'subconsulta devolvió más de un valor'

Su subconsulta no está correlacionada en absoluto. El identificador "TableA.key" en la subconsulta hace referencia a TableA en la cláusula FROM de la subconsulta, no a la tabla de destino de la actualización (que también es TableA). No desea actualizar TableA.field con el conjunto de resultados de una combinación de dos tablas. Simplemente quieres esto:

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