Bruno Perroni
DBA SQL Server com mais de 6 anos de experiência!

Resetando Identity Column

Eae pessoal.

Mais uma dicazinha bem simples para vocês.

Frequentemente me perguntam como resetar o SEED de uma coluna identity ou definir um novo valor para o início do contador.

Segue um exemplo de seu funcionamento.

Iremos criar uma tabela qualquer para o teste e definir uma coluna Identity

CREATE TABLE dbo.IdentityTeste
(
	Id INT IDENTITY(1,1),
	RandomText VARCHAR(MAX)
)

Após a tabela estar criada insira alguns registros.

insert into IdentityTeste values ('Três tigres tristes')
insert into IdentityTeste values ('Casa suja, chão sujo')
insert into IdentityTeste values ('Um limão de Milão, mil limões de Milão, um milhão de limões de Milão')
insert into IdentityTeste values ('Alcoólicos acólitos católicos')
insert into IdentityTeste values ('O pai do Pedro prega um prego na parede do prédio')

Podemos ver que a tabela possui 5 registros juntamente com a coluna Id preenchida automaticamente pelo campo identity.

Agora vou apagar os registros da tabela e inserir novamente.

Note que os valores do campo Id continuaram a realizar o auto incremento a partir do numero 6 que é o próximo número a ser incrementado pela coluna Identity.

Delete os dados da tabela novamente, porém antes de inserir os registros execute o comando abaixo:

DBCC CHECKIDENT ('IdentityTeste', RESEED, 0 )

Onde o primeiro valor é o nome da tabela, o segundo é o comando a ser executado, no caso o RESEED, e por ultimo o valor que será definido para a coluna, no nosso caso será o 0.

Observe que ao executar o comando, uma mensagem é retornada informando que o valor atual  da coluna é o número 10.

Agora, após a inserção dos dados a coluna Id voltou ao seu valor iniciar de número 1.

Bom é isso ai, espero que tenha sido útil.