2012-10-26 63 views
2

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

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

回答

3

一个更合适的方法来实现这是会加入两个表:

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

而且要小心,如果logan.homep可以为每个sarufoo.homep多个记录。 –

0

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

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