Como posso redefinir a coluna de identidade no servidor SQL?

Como posso redefinir a coluna de identidade no servidor SQL?
No SQL Server, uma coluna de identidade refere-se a uma coluna que gera valores de gerações automaticamente com base no valor da semente fornecido e no intervalo de incremento.

Este guia ensinará como redefinir uma coluna de identidade no SQL Server, permitindo redefinir valores incorretos em uma coluna de identidade.

Identidade do SQL Server

Para adicionar uma coluna de identidade a uma tabela no SQL Server, use a consulta de identidade. A sintaxe para a consulta de identidade no servidor SQL é como mostrado:

Identidade (semente_value, increment_interval);

A consulta de identidade aceita dois argumentos:

  1. O seed_value refere -se ao valor do primeiro registro na tabela.
  2. increment_interval - refere -se ao valor específico adicionado ao registro anterior na tabela.

Por padrão, os valores de semente e incremento são definidos como 1. Portanto, o primeiro registro da tabela tem um valor de 1, e cada registro adicionado à tabela, adicionado por 1.

Redefinir coluna de identidade no servidor SQL

Vamos agora aprender a redefinir uma coluna de identidade no SQL Server e por que você pode precisar fazer isso.

Comece criando uma tabela de amostra e inserindo dados, como mostrado nas consultas abaixo:

Crie inventário de tabela (
identidade de chave primária (1,1) não nula,
Product_name Varchar (255),
Preço int,
Quantidade int
);
Insira no inventário (Product_name, Price, Quantity) valores
('Smart Watch', 110.99, 5),
('MacBook Pro', 2500.00, 10),
('Casacos de inverno', 657.95, 2),
('Mesa do escritório', 800.20, 7),
('Iron de solda', 56.10, 3),
('Tripé do telefone', 8.95, 8);

Agora podemos consultar os dados armazenados na tabela como:

Selecione * no inventário;

Os registros resultantes são os mostrados:

Observe a coluna de identificação; Embora não tenhamos especificado os valores em nossa declaração de inserção, o valor do recurso de identidade é o valor de gerações automáticas a partir de 1 e continua aumentando em um 1 para cada registro que inserimos.

Por que redefinir a coluna de identidade?

Você pode perguntar se a coluna de identidade contém valores gerados automaticamente em uma ordem lógica especificada, por que preciso redefinir a coluna de identidade?

Veja o que acontece com os dados quando excluímos um registro da tabela:

Excluir do inventário onde quantidade = 7;

A consulta de exemplo acima deve remover um registro em que a quantidade é igual a 7.

A tabela agora mantém os registros como:

Selecione * no inventário;

Nas colunas de identificação, temos os valores começando de 1 a 6. No entanto, o ID de 4 está faltando. Isso acontece quando lançamos um recorde da tabela.

Para consertar isso, precisamos redefinir a coluna de identidade.

Como redefinir a coluna de identidade

Para redefinir a coluna de identidade no SQL Server, usamos o procedimento DBCC CheckIndent.

A sintaxe do procedimento é como:

Dbcc checkIdent ('tabela_name', reseed, new_value);

No entanto, se redefinirmos a coluna de identidade e tentarmos inserir dados, o SQL Server retornará um erro. Para resolver isso:

  • Crie uma nova tabela agindo como o backup da tabela antiga.
  • Remova os dados da tabela antiga
  • Redefinir a coluna de identidade
  • Reinsira os dados na nova tabela.

Um exemplo de consulta implementando as etapas acima é como mostrado:

Selecione * em new_inventory no inventário;
Excluir do inventário;
DBCC CheckIdent ('Inventário', Reseed, 0);
Insira no inventário (Product_name, Price, Quantity) Selecione Product_name, Preço, Quantidade do New_inventory Ordem por ID ASC;

Depois que as consultas são executadas com sucesso, podemos verificar os dados na tabela de inventário como:

Selecione * no inventário;

Os registros de tabela resultantes são os mostrados:

Aqui, a coluna de identificação está na ordem certa.

Fechamento

Este guia abrange o básico do recurso de identidade no SQL Server e como redefinir uma coluna de identidade em caso de erros.