Maison >base de données >tutoriel mysql >Pourquoi mes colonnes à incrémentation automatique SQL Server 2012 ignorent-elles les valeurs ?

Pourquoi mes colonnes à incrémentation automatique SQL Server 2012 ignorent-elles les valeurs ?

DDD
DDDoriginal
2025-01-18 02:47:10637parcourir

Why Do My SQL Server 2012 Auto-Increment Columns Skip Values?

La valeur de la colonne d'incrémentation automatique de SQL Server 2012 saute occasionnellement

SQL Server 2012 a introduit des modifications dans le comportement des colonnes entières à incrémentation automatique, entraînant des sauts occasionnels dans la séquence de numérotation. Ce phénomène est attribué aux séquences introduites dans le moteur de base de données.

Le mécanisme d'auto-incrémentation réserve désormais une plage de valeurs pour d'éventuelles insertions. Lorsque la valeur maximale de la plage est atteinte, une nouvelle plage est allouée, ce qui peut entraîner des valeurs discontinues.

Pourquoi cela arrive-t-il ?

Les valeurs de saut ne sont pas réellement perdues ; elles sont conservées pour d'éventuelles insertions simultanées ou transactions distribuées.

Y a-t-il une solution ?

Oui, vous avez deux options :

  • Activer l'indicateur de trace 272 : Cet indicateur enregistre chaque valeur d'identité générée, ce qui peut avoir un impact sur les performances.
  • Utiliser un générateur de séquences sans cache : Ce paramètre garantit que les valeurs sont attribuées une par une, ce qui donne des nombres consécutifs.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn