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:
Sobre 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.
cara bonito