Como Redefinir o Valor Inicial de uma Identidade Incremental no SQL Server

Ao trabalhar com bancos de dados no SQL Server, você pode encontrar situações em que precisa redefinir o valor inicial de uma identidade incremental. Isso pode ser particularmente útil durante fases de desenvolvimento ou teste, quando você deseja garantir que seus dados comecem do zero ou circulem novamente por um intervalo específico de valores. Neste post do blog, descreveremos o processo de como redefinir o valor inicial de uma coluna de identidade no SQL Server, fornecendo um guia claro e conciso.

Compreendendo Colunas de Identidade

Antes de mergulharmos nos passos para redefinir o valor da identidade incremental, vamos explicar brevemente o que é uma coluna de identidade:

  • Coluna de Identidade: Uma coluna de identidade é uma coluna especial em uma tabela do SQL Server que gera automaticamente um número sequencial sempre que uma nova linha é adicionada. Normalmente, essa coluna é definida com a propriedade IDENTITY.

Quando você CRIA uma tabela com uma coluna de identidade, pode configurá-la assim:

CREATE TABLE TabelaExemplo (
    ID INT IDENTITY(1,1) PRIMARY KEY,
    Nome VARCHAR(50)
);

Neste exemplo, a primeira linha terá um ID de 1, a segunda linha terá um ID de 2, e assim por diante, incrementando em 1. No entanto, às vezes você pode querer redefinir essa sequência de volta para um número específico—geralmente 0 ou 1—por várias razões, como ao recarregar dados de teste.

Redefinindo o Valor de Identidade

Para redefinir o valor inicial de uma coluna de identidade no SQL Server, você pode usar o comando DBCC CHECKIDENT. Aqui está um resumo de como fazê-lo:

Passo 1: Identifique Sua Tabela

Antes de fazer quaisquer alterações, identifique a tabela cuja coluna de identidade você deseja redefinir. Para este guia, digamos que sua tabela se chama NomeDaTabela.

Passo 2: Use o Comando DBCC CHECKIDENT

A sintaxe do comando para redefinir o valor da identidade é simples:

DBCC CHECKIDENT('NomeDaTabela', RESEED, 0);
  • DBCC CHECKIDENT: Este comando verifica o valor atual da identidade para a tabela especificada e pode redefini-lo se necessário.
  • ‘NomeDaTabela’: Substitua isso pelo nome real da sua tabela.
  • RESEED: Esta palavra-chave indica que você deseja redefinir o valor inicial.
  • 0: Este é o novo valor inicial para a coluna de identidade. Você pode mudá-lo para qualquer valor que atenda às suas necessidades, mas tenha em mente que a primeira linha inserida após este comando adotará esse valor e incrementará a partir daí.

Passo 3: Confirme a Redefinição

Para confirmar que o valor da identidade foi redefinido, simplesmente insira uma nova linha na tabela e verifique os valores de ID:

INSERT INTO NomeDaTabela (Nome) VALUES ('Entrada de Teste');
SELECT * FROM NomeDaTabela;

Você deve ver que a nova entrada tem um ID de 1 (ou 0, dependendo do valor que você definiu para RESEED) se esse foi o seu ponto de partida designado.

Conclusão

Redefinir o valor inicial de uma identidade incremental no SQL Server é um processo simples usando o comando DBCC CHECKIDENT. Essa capacidade é particularmente benéfica durante testes ou fases de desenvolvimento, permitindo que você otimize seu fluxo de trabalho, garantindo que os identificadores sejam consistentes e previsíveis.

Agora você tem um modelo sólido para redefinir colunas de identidade ao seu alcance. Boa codificação!