bobfang(匆匆过客) 的做法才是正確的,其它幾位的代碼都是錯的,別忘了,在SQL Server中,UPDATE A
SET A.a=B.a
FROM A,B
WHERE A.a=B.c中的where A.a=B.c即是關聯賦值的條件也是修改條件,而樓上幾位除了bobfang(匆匆过客) 的代碼之外,其它幾位的都把修改條件給丟了,這就出現了一個邏輯錯誤,雖然語法沒錯,但最終修改結果可能(我是說可能,在某些數據情形下,他們的修改結果也可能是一樣的)並不是你所想要的。另外還有如下一種寫法也可:
update a set a.a=(select b.a from b where b.c=a.a) where a.a in (select b.c from b);