2012-10-26 92 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);