Я считаю, что это лучший способ.
Таблицы и данные:
declare @someTable1 table(id int, column1 int, column2 varchar(2))
declare @someTable2 table(id int, column1 int, column2 varchar(2))
insert @someTable1
select 1,10 a, 'a3'
union all select 2,20 , 'a3'
union all select 3,null, 'a4'
insert @someTable2
select 1,10, 'a3'
union all select 2,19, 'a3'
union all select 3,null, 'a5'
Обновление:
UPDATE t1
set t1.column1 = t2.column1,
t1.column2 = t2.column2
from @someTable1 t1
JOIN
(select * from @someTable2
EXCEPT
select * from @someTable1) t2
on t2.id = t1.id
Результат:
select * from @someTable1
id a b
----------- -------- --
1 10 a3
2 19 a3
3 NULL a5