none
Inserçao de dados RRS feed

  • Pergunta

  • Caros,

      Estou incluindo grande quantidade de registros de uma tabela para outra, de mesmo nome, porém os dados alterados. O que vai diferenciar um registro para o outro é somente um campo que funciona como chave primaria. Esta tablea tem duas.

    O que eu fiz: Exportei a tabela de um banco para outro para editar> Editei, peguei somente os registros que me interessavam > Exclui os outros>Tive que alterar o valor da chave primaria principal, que não é auto increment,  incrementando a partir do último valor da tabela original>exportei a tabela da alterarada para a original> tudo certo.

    Mas quando fui usar um programa(Totvs) na inclusão de registro, fui informado que não seria possivel, pois a chave primária estava sendo duplicada e notei que o programa não lia o último registro da tabela, que veio de outra alterada. Não sei o que pode estar acontecendo, não sei se tenho que ver o índice, ou a constraint. Poderiam me ajudar?

    Obrigado?

    sexta-feira, 16 de março de 2012 14:53

Respostas

  • Boa noite jmarqDeveloper,

    Não sei se entendi bem, mas você disse que a tabela tem duas chaves primárias? Cada tabela só pode ter uma PK.

    Após a manipulação de dados, a sua tabela ficou correta, sem duplicidade e com a PK estabelecida certo?
    Você precisa ver como a aplicação está gerando o valor para esse campo que é PK, já que ele não é auto incremental.

    "notei que o programa não lia o último registro da tabela": você tem o select que a aplicação faz na tua base?


    Mariana Del Nero /* Se a resposta foi útil, não esqueça de marcá-la */

    • Marcado como Resposta jmarqDeveloper sexta-feira, 23 de março de 2012 19:55
    sexta-feira, 16 de março de 2012 21:22

Todas as Respostas

  • Boa noite jmarqDeveloper,

    Não sei se entendi bem, mas você disse que a tabela tem duas chaves primárias? Cada tabela só pode ter uma PK.

    Após a manipulação de dados, a sua tabela ficou correta, sem duplicidade e com a PK estabelecida certo?
    Você precisa ver como a aplicação está gerando o valor para esse campo que é PK, já que ele não é auto incremental.

    "notei que o programa não lia o último registro da tabela": você tem o select que a aplicação faz na tua base?


    Mariana Del Nero /* Se a resposta foi útil, não esqueça de marcá-la */

    • Marcado como Resposta jmarqDeveloper sexta-feira, 23 de março de 2012 19:55
    sexta-feira, 16 de março de 2012 21:22
  • é galera.

    Resolvi o probelema.

    Já que a PK não é incremental e não posso incluir outros registros na mesma tabela, para que não ocorra erro de duplicidade, peguei os registros e inclui novos valores na chave principal usando um script. Depois disso, consegui jogar as informações na tabela normalmente.

    Vou passar o script, pois vai que alguém precise.

    use <banco de dados
    go
    DECLARE @counter int
    SET @counter = 0 'valor inicial
    UPDATE  <tabela>
    SET @counter = <campo> = @counter + 1

    Obrigado Mariana. Eu não usei suas informações, porém a sua observação está correta. VLW mesmo

    sexta-feira, 23 de março de 2012 19:55