更新单个查询MS SQL中的多个记录

时间:2012-10-26 16:36:54

标签: sql-server

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

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

2 个答案:

答案 0 :(得分:3)

实现这一目标的一种更简洁的方法是加入两个表:

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

答案 1 :(得分:0)

您必须将要更新的行与您选择的行相关联。否则你的subselect(SET one)将返回它的每一行。

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