Usuário com melhor resposta
Inserçao de dados

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?
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
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
-
é 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 + 1Obrigado Mariana. Eu não usei suas informações, porém a sua observação está correta. VLW mesmo