Пожалуйста, попробуйте использовать функцию COALESCE, а не использовать условие where.Функция COALESCE принимает следующее значение, если встречается NULL.
Merge into [dbo].[test] a
using [dbo].[test2] b
on a.col1 = b.col1
when matched then
update
set col2 = COALESCE(a.col2, b.col2),
col3 = COALESCE(a.col3, b.col3),
col4 = COALESCE(a.col4, b.col4);
Таким образом, в модифицированном коде, если таблица [dbo]. [Test] col2 имеет значение Null, тогда она принимает значение из [dbo]. [Test2].Поскольку вы будете использовать COALESCE, вы сможете объединить любое количество значений.