Inserir valores em campos do tipo autonumeração no SQL Server

Aprenda como inserir valores em campos de autonumeração no SQL Server

Campos do tipo autonumeração (IDENTITY) geralmente são utilizados como chave primária em nossas tabelas. Quando você insere um novo registro, este campo automaticamente receve um valor incremental em relação ao registro anterior. Portanto, por padrão, você não pode inserir um valor a sua escolha neste campo.

Apenas colunas com o tipo de dados INT, TINYINT, SMALLINT e BIGINT podem ser autonumeráveis. Apenas um campo deste tipo pode existir por tabela.

Qual a necessidade de inserir nossa própria numeração neste campo?

Se você fizer uma cópia da sua tabela, para fins de backup, excluir alguns registros, e depois de alguns dias quiser copiar de volta os registros excluídos para a tabela original, os registros vão ganhar novos códigos. 

Copiar os registros mantendo os códigos originais é algo que exige menos esforço do que fazer o "restore" do backup daquela tabela.

Como adicionar os registros mantendo os códigos originais?

Vamos ver um exemplo de como fazer isso. Mas primeiro, vamos criar a nossa tabela.

CREATE TABLE minha_tabela

(

 ID int IDENTITY,

 nome varchar(100),

 email varchar(200)

)

 

Agora vamos inserir alguns registros:

INSERT INTO minha_tabela(nome, email) VALUES( Bins , teste@teste.com.br )

INSERT INTO minha_tabela(nome, email) VALUES( Nome1 , teste@teste.com.br )

INSERT INTO minha_tabela(nome, email) VALUES( Nome2 , teste@teste.com.br )

INSERT INTO minha_tabela(nome, email) VALUES( Nome3 , teste@teste.com.br )

 

Você deve ter agora registros de 1 a 4 em sua tabela. Vamos agora apagar o registro número 2.

DELETE FROM minha_tabela WHERE id = 2

Agora vamos desativar a autonumeração do campo, para inserir novamente um registro com o código 2

 

SET IDENTITY_INSERT minha_tabela OFF

INSERT INTO Customer(ID,nome,email) VALUES(2, Nome Novo , teste@teste.com.br )

SET IDENTITY_INSERT Customer ON

 

Utilizando o comando SET IDENTITY_INSERT com o valor OFF, podemos adicionar o número no campo ID. Para voltar ao comportamento padrão, basta definir esta propriedade como ON

Outro recurso que permite manipular a numeração do campo é alterar o número inicial. 

DBCC checkident (minha_tabela, RESEED, 10)

Com este comando, nossa tabela vai ter o número inicial definido como 10. Desta forma, se você adicionar um novo registro, ele vai passar a ser o código 11

 

Quer conferir mais dicas sobre banco de dados? Clique aqui e veja mais dicas!