COMO FAZER ESTE UPDATE NO SQL SERVER
Boa tarde,
Tenho um dterminado Update:
[txt-color=#0000f0]Update Tabela1
Set Codigo = (Select Row From Tabela2 Where Tabela2.Codigo = Tabela1.Codigo)
[/txt-color]
Tabela1 tem 100 registros e Tabela2 tem 20 registros
Na hora que rodo ele atualiza os 20 registros na tabela1 e deixa codigo=NULL no demais. Parecia tão simples
Como faço que ele atualize só os 20 e não altera os demais.
O que tem de errado no update?
att,
Tenho um dterminado Update:
[txt-color=#0000f0]Update Tabela1
Set Codigo = (Select Row From Tabela2 Where Tabela2.Codigo = Tabela1.Codigo)
[/txt-color]
Tabela1 tem 100 registros e Tabela2 tem 20 registros
Na hora que rodo ele atualiza os 20 registros na tabela1 e deixa codigo=NULL no demais. Parecia tão simples
Como faço que ele atualize só os 20 e não altera os demais.
O que tem de errado no update?
att,
Tenta assim:
Update Tabela1
Set Codigo = (Select TOP 1 Row From Tabela2 Where Tabela2.Codigo = Tabela1.Codigo)
Ficou na mesma, Alterou os 20 e colocou Null no restante.
Fiz até um teste numa coluna nova e deu o mesmo resultado
Até no final ele diz todos registros alterados
Fiz até um teste numa coluna nova e deu o mesmo resultado
Até no final ele diz todos registros alterados
É que falta a cláusula where no seu update:
Ou algo do tipo
Update Tabela1
Set Codigo = (Select TOP 1 Row From Tabela2 Where Tabela2.Codigo = Tabela1.Codigo)
Where Codigo is not null
Ou algo do tipo
Nada. veja a imagem real. O AluCodigo onde está NULL tinha um número, ele substituiu o que precisava e os que já tinham se foram, viraram NULL.
Vai ser melhor passar a estrutura das tabelas e o que voce quer fazer...
Ai vai ser complicado
voce vai ter de determinar o que será alterado
exemplo na tabela1 um tem
cod, fruta, quant
1, banana, 3
2, morango, 5
3, mixirica, 7
na tabela 2 vc tem
cod, fruta, quant
1, banana, 2
2, moranga, 3
3, mixirica, 4
4, laranja, 7
5, limão, 12
voce terá de verificar por exemplo se a quantidade de frutas da tabela um for diferente da tabela dois atualizar caso contrário não mexer em nada.
não pode ficar pra alterar o código, pois geralmente o código é fixo
como é difÃÂcil voce postar a estrutura seria algo do tipo
algum campo das tabelas deve ser igual e outro que será atualizado deve ser diferente entendeu
usando o exemplo das frutas
no update acima a tabela2 será atualizado a quantidade entendeu
exemplo na tabela1 um tem
cod, fruta, quant
1, banana, 3
2, morango, 5
3, mixirica, 7
na tabela 2 vc tem
cod, fruta, quant
1, banana, 2
2, moranga, 3
3, mixirica, 4
4, laranja, 7
5, limão, 12
voce terá de verificar por exemplo se a quantidade de frutas da tabela um for diferente da tabela dois atualizar caso contrário não mexer em nada.
não pode ficar pra alterar o código, pois geralmente o código é fixo
como é difÃÂcil voce postar a estrutura seria algo do tipo
algum campo das tabelas deve ser igual e outro que será atualizado deve ser diferente entendeu
usando o exemplo das frutas
Update Tabela1
Set quant= (Select Row From Tabela2 Where Tabela2.Codigo = Tabela1.Codigo and tabela2.quant <> tabela1.quant)
no update acima a tabela2 será atualizado a quantidade entendeu
vou fazer diferente, com 4 querys
Cria um Campo NovoCodigo
Popula esta coluna com os Códigos Novos
Copio o NovoCodigo para Codigo where is not Null
Apago a coluna NovoCodigo
Cria um Campo NovoCodigo
Popula esta coluna com os Códigos Novos
Copio o NovoCodigo para Codigo where is not Null
Apago a coluna NovoCodigo
Tópico encerrado , respostas não são mais permitidas