Ini karena Anda mencoba mengatur column3
ke hasil yang dikembalikan, dan SQL mengharapkan itu menjadi satu nilai saja (skalar). Mesin SQL menjadi bingung ketika Anda memberikannya lebih dari satu nilai pengembalian (yang mana yang harus digunakan?... itu tidak mengasumsikan untuk beralih melalui hasil). Jadi, jika Anda ingin memperbarui seluruh rangkaian hasil, maka Anda perlu membuat subtabel dari kueri Anda dan bergabung dengan itu. Kueri Anda akan terlihat lebih seperti ini
UPDATE Table3
SET Column3 = subtable.value
FROM Table3
JOIN (
select t2.column3+t1.column3 as value, t1.id
from table2 t2 with (nolock) join table1 t1
on table2.id=t1.id
where table2.id IN (100,101)
) AS subtable
ON subtable.id = Table3.id
WHERE table3.id IN (100, 101)
Dengan asumsi bahwa table3.id cocok dengan id lain, Anda juga benar-benar tidak memerlukan where table2.id IN ...