none
UPDATE em TAbela Ajuda RRS feed

  • 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
    segunda-feira, 10 de dezembro de 2012 11:02

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
    segunda-feira, 10 de dezembro de 2012 13:02

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

    segunda-feira, 10 de dezembro de 2012 12:20
  • Bom dia Carlos,

    Importa a ordem das linhas que o update será realizado? Já que essas 2300 linhas possuem informações...

    At.
    Rafael

    segunda-feira, 10 de dezembro de 2012 12:25
  • 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
    segunda-feira, 10 de dezembro de 2012 12:48
  • 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
    segunda-feira, 10 de dezembro de 2012 12:48
  • 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
    segunda-feira, 10 de dezembro de 2012 13:02
  • 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

    terça-feira, 11 de dezembro de 2012 23:31