Maison >base de données >tutoriel mysql >Pourquoi ma colonne d'identité SQL Server 2012 ignore-t-elle les incréments ?
Saut d'incrément de colonne d'identité SQL Server 2012 : un problème courant
Les colonnes d'identité à incrémentation automatique de SQL Server 2012 peuvent présenter un comportement inattendu : saut sporadique d'incréments. Cela perturbe la numérotation séquentielle des enregistrements, provoquant des lacunes dans les valeurs d'identification de votre table.
Ce problème découle de l'introduction des séquences dans SQL Server 2012. Les séquences améliorent les performances et l'évolutivité de la génération d'identité, mais cette amélioration peut conduire à l'omission apparente des incréments.
Comprendre le saut apparent
Lorsqu'une séquence gère une colonne d'identité, elle pré-attribue une plage de numéros. Les nouveaux enregistrements reçoivent des valeurs de cette plage. Si la plage allouée dépasse le besoin immédiat, cela crée l'illusion de nombres sautés, même si la séquence sous-jacente fonctionne correctement.
Solutions pour maintenir des incréments séquentiels
Pour retrouver le comportement d'incrémentation strictement séquentiel des anciennes versions de SQL Server, envisagez ces options :
NO CACHE
. Cela empêche la pré-attribution de grandes plages de numéros, garantissant une attribution séquentielle.En résumé
Le saut perçu des incréments de colonne d'identité dans SQL Server 2012 est un sous-produit de l'optimisation de séquence. En comprenant ce mécanisme et en utilisant les solutions suggérées, vous pouvez conserver les ID séquentiels sans sacrifier les avantages en termes de performances des séquences.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!