Usuário com melhor resposta
UPDATE em TAbela Ajuda

Pergunta
-
Olá pessoal bom dia,
Tenho uma tabela que tem um campo chamado
CONTRIBUINTE --- VARCHAR (50)
Pela aplicação houve um erro e esse campo foi preenchido de forma errada em 2300 registros desta forma:
346380017201000
346380017201000
346380017201000
346380017201000
346380017201000
346380017201000
Ou seja todos os 2300 registros estao iguais,
Eu preciso agora fazer um update na tabela onde eu mude registro a registro de forma sequencial como abaixo:
346380017201001
346380017201002
346380017201003
346380017201004
346380017201005
346380017201006
346380017201007
346380017201008
346380017201009
346380017201010
346380017201011
Porem nao posso fazer com insert, pois existem outros campos nessa tabela que é chave primaria e relacionado com outras tabelas e nao da certo, entao precisava fazer com UPDATE.
Alguem poderia me ajudar?
Obrigado
- Editado J.Carlos.Rib segunda-feira, 10 de dezembro de 2012 11:04 acres
Respostas
-
faça esse teste se te atender mude o script p/ update
select
Contribuinte,
Contribuinte_new = left(Contribuinte,13) = right('000'+convert(varchar,PK_ID),4)
from tabela
where Contribuinte = '346380017201000'
Se a minha ajuda lhe for útil não esqueça de classificar. Att. Leonardo Marcelino
- Sugerido como Resposta Roberson Naves segunda-feira, 10 de dezembro de 2012 13:08
- Marcado como Resposta J.Carlos.Rib terça-feira, 11 de dezembro de 2012 11:10
Todas as Respostas
-
Carlos, bom dia
conforme o seu exemplo vc muda apenas os últimos dois dígitos, porém se tratando de 2300 como vc quer q coloque o sequencial ao chegar no registro 100 e no registro 1000?
Se a minha ajuda lhe for útil não esqueça de classificar. Att. Leonardo Marcelino
-
-
Certo entao tem um campo que é o ID da tabela ou seja
tem um campo chamado PK_ID e eu vou pegar por esse campo ou seja
PK_ID Contribuinte
1 346380017201001
2 346380017201002
3 346380017201003
- Editado J.Carlos.Rib segunda-feira, 10 de dezembro de 2012 12:49 acres
-
Certo entao tem um campo que é o ID da tabela ou seja
tem um campo chamado PK_ID e eu vou pegar por esse campo ou seja
PK_ID Contribuinte
1 346380017201001
2 346380017201002
3 346380017201003
- Editado J.Carlos.Rib segunda-feira, 10 de dezembro de 2012 12:48 acres
-
faça esse teste se te atender mude o script p/ update
select
Contribuinte,
Contribuinte_new = left(Contribuinte,13) = right('000'+convert(varchar,PK_ID),4)
from tabela
where Contribuinte = '346380017201000'
Se a minha ajuda lhe for útil não esqueça de classificar. Att. Leonardo Marcelino
- Sugerido como Resposta Roberson Naves segunda-feira, 10 de dezembro de 2012 13:08
- Marcado como Resposta J.Carlos.Rib terça-feira, 11 de dezembro de 2012 11:10
-
Cara,
Utilize a lógica acima do nosso amigo dentro de um while no SQL, simples assim.
Atenciosamente,
Samuel dos Anjos
Atenciosamente, Samuel dos Anjos
- Sugerido como Resposta Samuel Rodrigues dos Anjos terça-feira, 11 de dezembro de 2012 23:31