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

Inserir valores em campos do tipo 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 minha_tabela (ID,nome,email) VALUES(2, Nome Novo , teste@teste.com.br )

SET IDENTITY_INSERT minha_tabela 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

 

Outros conteudos que podem ser de seu interesse

Sites para procurar emprego na area de TI
09/01/2022SQL

Sites para procurar emprego na area de TI

Uma lista de sites no Brasil e no exterior para procurar emprego na área de tecnologia da informação

Saiba mais...
Restringindo a entrada de dados com SQL
01/10/2023SQL

Restringindo a entrada de dados com SQL

Veja como funcionam as constraints dos bancos de dados SQL

Saiba mais...
Máscaras para CPF, CNPJ e outros tipos de dados com SQL
30/08/2020SQL

Máscaras para CPF, CNPJ e outros tipos de dados com SQL

Neste artigo você vai ver exemplos de como aplicar máscaras em dados nos banco de dados SQL Server e MySQL

Saiba mais...

Conteúdo sobre banco de dados sem complicação!


Warning: Cannot modify header information - headers already sent by (output started at /home/storage/f/7d/a9/dbins/public_html/blog/post.php:101) in /home/storage/f/7d/a9/dbins/public_html/blog/ga4_track.php on line 11