1
resposta

DÚVIDA SOBRE A EXCLUSÃO DE TODOS OS VALORES DA TABELA IDENTITY

Professor,

Quando é realizado a exclusão de um valor na tabela tab_identity, o próximo número incrementável no campo, seria incrementado normalmente. Exemplo: id =1 , id = 2, i d = 3 caso a query delete from tab_identity where id = 1 ,seja executada, a linha referente ao id = 1 será excluída. Agora, se executarmos a query delete from tab_identity todos os valores serão excluídos, mas ao executarmos os inserts novamente, os valores dos ids começariam a partir do 4 em diante , ex: id = 4, id = 5, id = 6 ...

Existe uma possibilidade para que após executarmos o comando delete from tab_identity recomece do um, como estava na primeira inserção, caso fosse excluído todos os valores.

PS: SEM EXECUTAR O DROP TABLE TAB_IDENTITY; porque isso seria resolvido, as vezes o usuário não exclui todos os dados, mas sim alguns e quando é inserido outros, os ids começam a incrementar pelo último isso estaria correto conforme explicado pelo professor, o problema ocorre quando é excluído todos.

Muito Obrigado Rafael

1 resposta

Olá, Rafael, tudo bem?

Existe sim uma forma de reiniciar o AUTO_INCREMENT de uma tabela.

Após executar a exclusão de todos os dados da tabela, você pode executar o seguinte comando para verificar em qual valor está o AUTO_INCREMENT da tabela:

SELECT IDENT_CURRENT('nome_da_tabela')

Para reiniciar o valor do AUTO_INCREMENT , você pode executar o seguinte comando:

DBCC CHECKIDENT (nome_da_tabela, RESEED, 0)

O comando DBCC CHECKIDENT, pode ser utilizado para verificar ou alterar o valor de uma coluna que é AUTO_INCREMENT.

A titulo de curiosidade, caso queira ler um pouco mais a respeito do comando DBCC CHECKIDENT, indo a leitura da documentação do SQL Server.

Espero ter ajudado e bons estudos!