Como fazer UPDATE em Transact-SQL?

1 resposta
jMarcel

Pessoal,
tenho as seguintes tabela

tb1:

dtref		qtd		valor1		valor2		cod1		cod2		nome
--------------------------------------------------------------------------------------------------------
08/2011		2		1000		2000		1		7064		aaa
08/2011		1		2000		4000		2		7064		bbb
06/2010		4		1234		4560		3		9944		ccc
07/2010		0		3125		6450		4		2020		ddd
07/2011		1		7896		9870		1		7064		eee
07/2011		1		8887		9990		2		7064		fff
.
.
.

tb2:

dtref		qtd		valor1		valor2		cod1		cod2
-------------------------------------------------------------------------------------
08/2011		0		1567		4657		1		7064		
08/2011		8		2468		8979		2		7064
06/2010		7		3214		7777		3		9944
07/2010		3		2800		2594		4		2020
07/2011		3		5597		7534		1		7064
07/2011		6		6547		6548		2		7064
.
.
.

Como fazer um update na tb2 de tal forma que apenas as linhas das colunas qtd, valor1 e valor 2 sejam atualizadas com os

respectivos dados da tb1, mas apenas as linhas onde a dtref, em ambas as tabelas, seja 08/2011 ?

O resultado final, de acordo com os dados nas tabelas acima, seria o seguinte:

tb2:
dtref		qtd		valor1		valor2		cod1		cod2
------------------------------------------------------------------------------------
08/2011		2		1000		2000		1		7064
08/2011		1		2000		4000		2		7064
06/2010		7		3214		7777		3		9944
07/2010		3		2800		2594		4		2020
07/2011		3		5597		7534		1		7064
07/2011		6		6547		6548		2		7064
.
.
.

Agradeço.

Marcel.

1 Resposta

A

Quando diz transact-sql você quer dizer que é SQL Server?

Se for o caso, você pode colocar uma clausula FROM no seu update…

Ficaria algo assim (acho):

UPDATE A
SET A.CAMPO = B.OUTRO_CAMPO
FROM
  TABELA_A A INNER JOIN TABELA_B B ON A.ID = B.ID
WHERE
  <SEU WHERE>

Com essa estrutura, dá para você montar um select para trazer os dados do jeito que quer e transformar em update.

Não tenho certeza da estrutura acima, fiz de cabeça.

Criado 26 de agosto de 2011
Ultima resposta 26 de ago. de 2011
Respostas 1
Participantes 2