none
Duplicação de registros RRS feed

  • Pergunta

  • Olá,

    Tenho um tabela que armazena registros referentes ao comportamento de operações de um sistema, gostaria de duplicar esses registros alterando somente a chave primaria através de uma soma.

    Exemplo:

    |CODIGOOPERACAO | DESCRICAO                              | ...

    |0101001                 | VENDA NORMAL NO ESTADO     |

    |0102001                 | VENDA NORMAL (FORA)             |

    Eu gostaria de apartir de uma seleção* poder duplicar essas operações alterando apenas o campo CODIGOOPERACAO é possível?

    *SELECT * FROM TABELA WHERE CODIGOOPERACAO LIKE '0101%'


    Se esta sugestão for útil, por favor, classifique-a como útil. Se ela lhe ajudar a resolver o problema, por favor, marque-a como Resposta.

    sexta-feira, 23 de novembro de 2012 11:28

Respostas

  • Se não tiver primary key ou unique constraint no campo codigooperacao o script abaixo resolverá seu problema, se tiver, será impossível fazer o que deseja.

    INSERT INTO TABELA
                (CODIGOOPERACAO,
                 DESCRICAO)
    SELECT b.CODIGOOPERACAO,
           a.DESCRICAO
    FROM   TABELA a
           CROSS JOIN TABELA b
    WHERE  a.CODIGOOPERACAO LIKE '0101%'
           AND NOT EXISTS(SELECT 1
                          FROM   TABELA
                          WHERE  CODIGOOPERACAO = b.CODIGOOPERACAO
                                 AND DESCRICAO = a.DESCRICAO) 

    Abçs
    sexta-feira, 23 de novembro de 2012 12:01

Todas as Respostas

  • Marcos,

    Tente com CROSS JOIN

    SELECT b.CODIGOOPERACAO, a.DESCRICAO
    FROM   TABELA a
           CROSS JOIN TABELA b
    WHERE  a.CODIGOOPERACAO LIKE '0101%'

    Abçs

    sexta-feira, 23 de novembro de 2012 11:38
  • Juliano,

    Eu preciso gravar esse registros na tabela, realmente duplica-los.


    Se esta sugestão for útil, por favor, classifique-a como útil. Se ela lhe ajudar a resolver o problema, por favor, marque-a como Resposta.

    sexta-feira, 23 de novembro de 2012 11:56
  • Se não tiver primary key ou unique constraint no campo codigooperacao o script abaixo resolverá seu problema, se tiver, será impossível fazer o que deseja.

    INSERT INTO TABELA
                (CODIGOOPERACAO,
                 DESCRICAO)
    SELECT b.CODIGOOPERACAO,
           a.DESCRICAO
    FROM   TABELA a
           CROSS JOIN TABELA b
    WHERE  a.CODIGOOPERACAO LIKE '0101%'
           AND NOT EXISTS(SELECT 1
                          FROM   TABELA
                          WHERE  CODIGOOPERACAO = b.CODIGOOPERACAO
                                 AND DESCRICAO = a.DESCRICAO) 

    Abçs
    sexta-feira, 23 de novembro de 2012 12:01
  • Infelizmente o que eu estava pretendo não poderá ser feito :/

    Obrigado pela ajuda.


    Se esta sugestão for útil, por favor, classifique-a como útil. Se ela lhe ajudar a resolver o problema, por favor, marque-a como Resposta.

    sexta-feira, 23 de novembro de 2012 14:23