Minha dúvida é na utilização do MERGE no lugar do UPDATE com FROM, ao qual aparentemente é mais fácil e mais simples.
Inicialmente, a impressão que eu tive com o MERGE foi que ele é apenas para associações do tipo INNER JOIN e com apenas uma associação de tabela.
Através do comando MERGE, é possível utilizar mais de uma associação com JOIN ?
No caso do Update com FROM, é possível usar LEFT JOIN e usar mais de uma tabela pra fazer o UPDATE.
Como exemplo:
UPDATE A
SET A.Coluna1 = (
CASE
WHEN A.Coluna5 = 0 THEN B.Coluna1
WHEN A.Coluna5 = 1 THEN C.Coluna4
ELSE 2
END
)
FROM Tabela1 AS [A]
LEFT JOIN Tabela2 AS [B] ON A.PK_Tabela1 = B.PK_Tabela2
LEFT JOIN Tabela3 AS [C] ON A.PK_Tabela1 = C.FK_Tabela3
No caso a acima utilizei o LEFT JOIN porque um registro pode existir na Tabela1 e não existir nas outras subsequentes.
Tentei fazer algo parecido com MERGE porém não obtive sucesso.