Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

JoaoRafael213

Migração de dados para sql server.

Recommended Posts

Bom dia, estou migrando os dados de um novo cliente que utilizava um sistema diferente do meu, migrei os registros de cliente do antigo banco para o meu e estou tendo apenas um problema por causa do campo NUM_CLIENTE que é auto increment, pois os registros dele estão indo do 0001 até o 0999 e depois já pola para 5015, então quando vou inserir um novo registro nesta table o auto_increment não pega a sequencia do ultimo registro ele tenta pega o num_cliente 0004 que já existe no banco ai da erro de primary key.

Gostaria de saber se tem como eu pegar os registros e colocar todos na ordem, iniciando do 0001?

 

Desculpem se a descrição acima ficou confusa, agradeço se alguém poder me dar uma luz.

 

Att.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia, estou migrando os dados de um novo cliente que utilizava um sistema diferente do meu, migrei os registros de cliente do antigo banco para o meu e estou tendo apenas um problema por causa do campo NUM_CLIENTE que é auto increment, pois os registros dele estão indo do 0001 até o 0999 e depois já pola para 5015, então quando vou inserir um novo registro nesta table o auto_increment não pega a sequencia do ultimo registro ele tenta pega o num_cliente 0004 que já existe no banco ai da erro de primary key.

Gostaria de saber se tem como eu pegar os registros e colocar todos na ordem, iniciando do 0001?

 

Desculpem se a descrição acima ficou confusa, agradeço se alguém poder me dar uma luz.

 

Att.

 

 

Bom dia!

Cara utilize a função dbcc checkident com o parametro reseed, você pode setar qual será o próximo numero que o identity irá assumir... conforme o exemplo:

create table joaorafael213 (a int identity, b char(1))
go
dbcc checkident ('joaorafael213',reseed,10)
go
insert into joaorafael213 values ('a')
go
select * from joaorafael213
drop table joaorafael213
o retorno:
a b
----------- ----
10 a

já pra colocar em ordem, desde o 1, creio que o jeito mais simples de explicar seja

Jogar os dados pra uma tabela temporária, limpar a tabela original, fazer o reseed colocando o valor 1 e depois fazer um insert com select trazendo os registros da tabela temporária (com exceção da coluna identity)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Aproveitando...

De uma lida na descrição do comando:

http://msdn.microsoft.com/pt-br/library/ms176057.aspx

 

[]´s

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.