Ir para conteúdo
Fórum Script Brasil
  • 0

ATUALIZAR MULTIPLOS REGISTROS DE UMA MESMA COLUNA


llucena

Pergunta

Amigos, tenho uma tabela contendo milhares de códigos de produtos, e preciso alterar estes códigos.

Deverá ser 1 pra 1.

EXEMPLO:

CÓDIGOS ATUAIS

1-001/01-03-001

1-001/01-03-002

1-001/01-04-001

NOVOS CÓDIGOS

001.00001

001.00002

001.00003

Como eu posso realizar este UPDATE sendo que eu já tenho montada a relação de novos códigos? Um a um é inviável pois temos 7mil itens. Não há um critério para definir qual produto receba tal código, só precisamos fazer um replace dos códigos antigos pelos novos.

Imaginei o script abaixo mas não funcionou:

update TPRD set CODIGOPRD = ('001.00001','001.00002','001.00003')

where CODCOLIGADA = '15' and CODIGOPRD IN ('1-001/01-03-001','1-001/01-03-002','1-001/01-04-001')

alguém poderia me auxiliar?

obrigado.

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

você sabe utilizar cursores ou while.

em questao de performance cursor não é a melhor opção, while é melhor so que porem sua logica vai ser mais dificiu de implementar enquanto cursor tranquilasso fazer.

muitos recomendam não usar cursores já outros não tem tantas criticas assim a fazer.

bota parte (ou exemplo semelhante) Da estrutura das duas tabelas pra você entender melhor quando for montado o script.

há tem gente que trabalha com tabelas temporarias uma boa opção tambem.

até a proxima

Link para o comentário
Compartilhar em outros sites

  • 0

mexo muito o básicao do sql.... não conheco cursores nem while não...

você poderia exemplificar o script com cursores?

No meu caso, eu tenho uma tabela TPRD contendo uma coluna CODIGOPRD contendo 5000 registros.

Eu preciso fazer um update destes 5000 registros para outros 5000 que eu tenho prontos em txt.

Link para o comentário
Compartilhar em outros sites

  • 0

amigos, gostaria de postar aki a solução bastante simples que encontrei para o meu problema...

conforme dito antes, eu tinha a relação montada dos códigos antigos e também a relação dos novos códigos (que deveria substituir os antigos).

tendo estas duas relaçõoes nas mãos, eu crieu uma TABELA TEMPORÁRIA contendo duas colunas: code_old e code_new. cada coluna comportava uma relação de códigos.

com a tabela temporária criada e populada, bastou um simples UPDATE FROM no qual segue:

update TPRD set CODIGOPRD = T.CODE_NEW from TPRD P

inner join #TABELATEMPORARIA T on

t.codde_old = p.codigoprd

pronto, o sql pegou todos os códigos que fossem comuns entre as duas tabelas e fez o update....

é isso ai, vivendo e aprendendo!

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...