Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Consulta de atualização SQL e 'subconsulta retornou mais de um valor'


Sua subconsulta não está correlacionada. O identificador "TableA.key" na subconsulta refere-se à TableA na cláusula FROM da subconsulta, não à tabela de destino da atualização (que também é TableA). Você não deseja atualizar TableA.field com o conjunto de resultados de uma junção de duas tabelas. Você simplesmente quer isso:
UPDATE TableA  
   SET TableA.field = (SELECT TableB.field  
                       FROM TableB
                       WHERE TableA.key = TableB.key)