Sql server 在单个查询MS SQL中更新多个记录

Sql server 在单个查询MS SQL中更新多个记录,sql-server,Sql Server,我试图使用下面的查询使用临时表更新表中的多条记录,但不起作用。请告诉我更新多个记录的正确方法 UPDATE sarufoo SET sarufoo.mobile = (SELECT mobile_no FROM logan) WHERE sarufoo.homep IN (SELECT homep FROM logan); 您必须将正在更新的行与正在选择的行相关联。否则,您的subselect(SET)将返回它拥有的每一行 UPDATE sarufoo SET sarufoo.mobil

我试图使用下面的查询使用临时表更新表中的多条记录,但不起作用。请告诉我更新多个记录的正确方法

UPDATE sarufoo 
SET sarufoo.mobile = (SELECT mobile_no FROM logan) 
WHERE sarufoo.homep IN (SELECT homep FROM logan);

您必须将正在更新的行与正在选择的行相关联。否则,您的subselect(SET)将返回它拥有的每一行

UPDATE sarufoo 
SET sarufoo.mobile = (SELECT mobile_no FROM logan WHERE sarufoo.homep = logan.homep) 
WHERE sarufoo.homep IN (SELECT homep FROM logan);

实现这一目标的一个更简洁的方法是将两个表连接起来:

UPDATE sf
SET sf.mobile = l.mobile_no
From
    sarufoo sf
    JOIN logan l ON sf.homep = l.homep

如果logan.homep可以为每个sarufoo.homep创建多个记录,请小心。