No SQL Server 2008, você poderia colocar os dados em uma nova tabela e usar a instrução MERGE com sua tabela existente como destino e sua nova tabela como sua origem.
Em vez disso, você pode preferir colocá-lo em uma nova tabela e usá-lo como sua origem com um método antigo (usando duas etapas, infelizmente):
UPDATE t SET col1 = s.col1, col2 = s.col2
FROM targetTable t
JOIN
newTable s
ON s.id = t.id ;
INSERT targetTable (columnlist)
SELECT s.col1, s.col2, ...
FROM sourceTable s
LEFT JOIN
targetTable t
ON s.id = t.id
WHERE t.id IS NULL;
Lembre-se de que você pode precisar ativar IDENTITY_INSERT na sua tabela de destino, caso esteja tentando inserir em uma coluna de identidade também.