Eu precisava copiar informações de uma linha de uma tabela para outra. Percebi que poderia fazer o seguinte:
update address
set col1 = a2.col1,
col2 = a2.col2,
.....etc
from address a1, address a2
where a1.id = @to and a2.id = @from
No entanto, o SQL acima parece meio ambíguo.
Como sei que atualizará a linha @to com dados de @from e não o contrário?
Editar: Nota: embora eu não tenha feito testes extensivos, esta consulta parece funcionar quando a tento em nosso banco de dados de desenvolvimento. Ele simplesmente atualiza a linha @to com os resultados da linha @from.
Para ser menos ambíguo, você pode preceder o alias na cláusula set. (Retirado de 孔夫子 nos comentários, que não enviou uma resposta.)