Update com inner join - T-SQL

Por Gabriel Bauermann | 19/01/2011 | Tecnologia

Em meu blog, o dotDicas (http://www.dotdicas.com) escrevo artigos sobre desenvolvimento .NET em geral. Outro dia veio até mim um amigo desenvolvedor, leitor do meu blog, com uma dúvida de SQL. Respondida a pergunta de meu amigo, resolvi escrever um artigo, para ajudar outros desenvolvedores que possam vir a ter a mesma dúvida. Porém meu blog está focado no desenvolvimento .NET, então resolvi procurar outro espaço para publicar minha dica.

Com certeza, em algum momento a maioria dos desenvolvedores, que utiliza SQL Server, já se deparou com necessidade de atualizar um registro em uma tabela, baseado no valor de um registro em outra tabela. Os que ainda não tiveram esta necessidade, ainda passarão por isto. E terão a mesma dúvida que eu tive: Como faço isto?

A resposta é muito simples. É só fazer um update com inner join, assim:

UPDATE tabela SET campo = t1.campo
FROM tabela t1
INNER JOIN tabela t2
ON t1.campo_chave = t2.campo_chave

Muito simples, não? Se um join não bastar, faça quantos joins forem necessários.