none
Gerar numeros RRS feed

  • Pergunta

  • Bom dia,

    Tenho um campo, CodProduto, que contêm registos em branco. O que quero fazer é atribuir um código para estes, conforme a designação que o produto tenha. em 3000 e tal registos, acontece em 36. Como posso fazer isso?

    Estava a pensar em compara um a um com a sua desginação, e atrbuir-lhe um numero.

    quinta-feira, 29 de dezembro de 2011 11:11

Respostas

  • /*Sempre crie uma copia da tabela quando existe uma manipulação densa na mesma*/

    select * into TabelaProdutosBKP from TabelaProdutos

     

    select * into #tmp1 from TabelaProdutos

    where codProduto = ''

     

    /*Execute este comando isoladamente para saber o ultimo ID de sua tabela*/

    select MAX(codProduto) from TabelaProdutos

     

    alter table #tmp1 drop column codProduto

     

    /*Substitua o valor 3 de pelo o ultimo ID +1 de sua tabela*/

    alter table #tmp1 add codProduto int identity(3,1)

     

    delete from TabelaProdutos

    where codProduto is null

     

    insert TabelaProdutos (codProduto, descricao)

    select codProduto, descricao from #tmp1


    Eduardo Gomes - http://www.h1solucoes.com.br - Twitter: @edugp_sp
    quinta-feira, 29 de dezembro de 2011 15:09

Todas as Respostas

  • Amigo, não entendi a regra para preencher os CodProdutos em branco. Poderia especificar melhor?

     

    Abs.


    Eduardo Gomes - http://www.h1solucoes.com.br - Twitter: @edugp_sp
    quinta-feira, 29 de dezembro de 2011 11:55
  • A regra é verificar a descrição do produto, e sendo elas diferentes entre si, atribuía um IDProduto aqueles que se encontram em branco
    quinta-feira, 29 de dezembro de 2011 12:13
  • /*Sempre crie uma copia da tabela quando existe uma manipulação densa na mesma*/

    select * into TabelaProdutosBKP from TabelaProdutos

     

    select * into #tmp1 from TabelaProdutos

    where codProduto = ''

     

    /*Execute este comando isoladamente para saber o ultimo ID de sua tabela*/

    select MAX(codProduto) from TabelaProdutos

     

    alter table #tmp1 drop column codProduto

     

    /*Substitua o valor 3 de pelo o ultimo ID +1 de sua tabela*/

    alter table #tmp1 add codProduto int identity(3,1)

     

    delete from TabelaProdutos

    where codProduto is null

     

    insert TabelaProdutos (codProduto, descricao)

    select codProduto, descricao from #tmp1


    Eduardo Gomes - http://www.h1solucoes.com.br - Twitter: @edugp_sp
    quinta-feira, 29 de dezembro de 2011 15:09
  • Eu posso fazer isso através do T-SQL



    quinta-feira, 29 de dezembro de 2011 16:55
  • use o Execute SQL Task e coloque o T-SQL.

    Abs.


    Eduardo Gomes - http://www.h1solucoes.com.br - Twitter: @edugp_sp
    quinta-feira, 29 de dezembro de 2011 16:57
  • " #tmp1"?
    quinta-feira, 29 de dezembro de 2011 17:04
  • é uma tabela temporária onde estão contidos todos os registros cujo o código está em branco. A ideia é separar em outra tabela os registros em branco e depois criar os ID´s a partir do ultimo ID de sua tabela original, realizando um sequencial. Após isto o script deleta os estes registros em branco e insere novamente os dados com os ID´s já criados na tabela original.
    Eduardo Gomes - http://www.h1solucoes.com.br - Twitter: @edugp_sp
    quinta-feira, 29 de dezembro de 2011 17:07
  • ok
    quinta-feira, 29 de dezembro de 2011 17:11
  • Eu recomendo criar. Porque se o resultado final não for condizente com sua necessidade, vc pode voltar e refazer.

     

    Abs.


    Eduardo Gomes - http://www.h1solucoes.com.br - Twitter: @edugp_sp
    quinta-feira, 29 de dezembro de 2011 17:16
  • Eu tenho o seguinte fluxo... O script em deve ser executado neste fluxo?
    quinta-feira, 29 de dezembro de 2011 17:29