IDENTITY – Auto-incremento de valores em colunas – Curso de SQL Server – 06

AUTO INCREMENTO (IDENTITY) no SQL SERVER

  • O auto incremento permite que um número único seja gerado automaticamente quando um novo registro é inserido em uma tabela.
  • Em SQL SERVER usamos a palavra chave IDENTITY (“identidade”) para denotar o auto incremento em uma coluna, cujo valor inicial padrão é 1, e se incrementa também em 1.
  • Para que o valor de IDENTITY inicie, por exemplo em 100, e se incremente de 2 em 2, use IDENTITY(100,2)
  • Ao inserir valores na tabela, não é necessário especificar o valor para a coluna de auto-incremento.
  • Não é possível alterar uma coluna existente para configurar IDENTITY.
  • Se necessário, crie uma nova tabela com IDENTITY e exclua a atual.
  • Só é permitido usar uma coluna de identidade por tabela.

Vamos ver um exemplo do uso da identidade criando uma tabela de exemplo chamada tbl_teste_identidade:

CREATE TABLE tbl_teste_identidade
(ID_Teste SMALLINT PRIMARY KEY IDENTITY(10,2),
valor SMALLINT NOT NULL);
INSERT INTO tbl_teste_identidade (valor) VALUES (10);
INSERT INTO tbl_teste_identidade (valor) VALUES (20);
INSERT INTO tbl_teste_identidade (valor) VALUES (30);
INSERT INTO tbl_teste_identidade (valor) VALUES (40);
SELECT * FROM tbl_teste_identidade;

Verificar o valor atual da Identidade

Podemos verificar o valor de identidade mais atual armazenado em uma tabela no banco de dados com o comando a seguir:

DBCC CHECKIDENT (‘nome_tabela’, NORESEED)

Ex.:

DBCC CHECKIDENT (tbl_livros, NORESEED);
DBCC CHECKIDENT (tbl_teste_identidade, NORESEED);

Alterar o próximo valor no campo de Identidade

Para alterar o valor de identidade do próximo registro a ser armazenado em uma tabela, use o comando a seguir:

DBCC CHECKIDENT (nome_tabela, RESEED, valor_semente)

Ex.:- Usar o valor 150 a partir do próximo registro:

DBCC CHECKIDENT (tbl_teste_identidade, RESEED, 149);

Inserindo mais dados e verificando o novo valor de identidade:

INSERT INTO tbl_teste_identidade (valor) VALUES (70);
INSERT INTO tbl_teste_identidade (valor) VALUES (80);
INSERT INTO tbl_teste_identidade (valor) VALUES (90);
SELECT * FROM tbl_teste_identidade;

Assista a seguir a um vídeo sobre o assunto para sanar eventuais dúvidas:


EuSobre Fábio dos Reis

Fábio dos Reis trabalha com tecnologias variadas há mais de 25 anos, tendo atuado nos campos de Eletrônica, Telecomunicações, Programação de Computadores e Redes de Dados. É um entusiasta de Linux e Open Source em geral, Astrônomo Hobbysta e estudante de idiomas, além de ministrar cursos e palestras sobre diversas tecnologias em São Paulo.

Sobre Fábio dos Reis (1195 Artigos)
Fábio dos Reis trabalha com tecnologias variadas há mais de 30 anos, tendo atuado nos campos de Eletrônica, Telecomunicações, Programação de Computadores e Redes de Dados. É um entusiasta de Ciência e Tecnologia em geral, adora Viagens e Música, e estuda idiomas, além de ministrar cursos e palestras sobre diversas tecnologias em São Paulo e outras cidades do Brasil.

1 Comentário em IDENTITY – Auto-incremento de valores em colunas – Curso de SQL Server – 06

  1. cara bonito

Escreva um comentário

Seu e-mail não será divulgado


*