Plusieurs réponses recommandent d'utiliser une déclaration comme celle-ci:
DBCC CHECKIDENT (mytable, RESEED, 0)
Mais l'OP a dit "supprimé certains enregistrements", qui ne sont peut-être pas tous, donc une valeur de 0 n'est pas toujours la bonne. Une autre réponse a suggéré de trouver automatiquement la valeur actuelle maximale et de réamorcer celle-ci, mais cela pose problème s'il n'y a aucun enregistrement dans la table, et donc max () renverra NULL. Un commentaire suggéré d'utiliser simplement
DBCC CHECKIDENT (mytable)
pour réinitialiser la valeur, mais un autre commentaire a correctement déclaré que cela ne fait qu'augmenter la valeur au maximum déjà dans le tableau; cela ne réduira pas la valeur si elle est déjà supérieure au maximum dans le tableau, ce que l'OP voulait faire.
Une meilleure solution combine ces idées. Le premier CHECKIDENT réinitialise la valeur à 0 et le second la réinitialise à la valeur la plus élevée actuellement dans la table, au cas où il y aurait des enregistrements dans la table:
DBCC CHECKIDENT (mytable, RESEED, 0)
DBCC CHECKIDENT (mytable)
Comme plusieurs commentaires l'ont indiqué, assurez-vous qu'il n'y a pas de clés étrangères dans d'autres tables pointant vers les enregistrements supprimés. Sinon, ces clés étrangères pointeront vers les enregistrements que vous créez après avoir réamorcé la table, ce qui n'est certainement pas ce que vous aviez en tête.