Para reiniciar a numeração de uma coluna Identiy de uma tabela do SQL Server, utilize o comando:
DBCC CHECKIDENT('[tabela]', RESEED, 0)
Para exemplificar uma situação em que esse comando pode ser utilizado, vamos considerar uma tabela “Usuário” com a seguinte estrutura:
CREATE TABLE [dbo].[Usuario](
[UsuarioID] [int] IDENTITY(1,1) NOT NULL,
[Email] [varchar](200) NULL,
[Senha] [varchar](max) NULL
CONSTRAINT [PK_Usuario] PRIMARY KEY CLUSTERED (UsuarioID)
)
Se você tiver nessa tabela 3 registros, serão gerados ID sequenciais para o campo “UsuarioID” de 1 até 3:
UsuarioID | Senha | |
---|---|---|
1 | andre@teste.com.br | 123 |
2 | pedro@teste.com.br | 532 |
3 | arnaldo@teste.com.br | 745 |
Se você apagar todos os registros dessa tabela com o Comando DELETE, ao inserir um novo registro, ao invés do novo registro ter a chave UsuarioID=1 ele terá a chave UsuarioID=4, isso acontece porque toda vez que um registro é inserido, o SQL recupera o próximo ID de uma seqüência que não é reiniciada depois que os registros são removidos da tabela.
Para zerar o identity dessa tabela, utilize o seguinte comando:
DBCC CHECKIDENT('Usuario', RESEED, 0)
Isso fará com que o próximo registro inserido tenha a chave UsuarioID=1.
Você pode ainda, alterar o valor do Identity para um outro valor que não seja. Por exemplo:
DBCC CHECKIDENT('Usuario', RESEED, 100)
Esse comando fará com que o próximo registro tenha a chave UsuarioID=101.