Quelle est la limite supérieure d'une clé primaire à incrémentation automatique dans SQL Server? Que se passe-t-il lorsqu'une clé primaire d'auto-incrémentation SQL Server atteint sa limite supérieure?
Réponses
Trop de publicités?Joel réponse est bonne, c'est la limite supérieure de ce type de données que vous utilisez.
Voici un exemple de deux d'entre eux:
- int: 2^31-1 (de 2 147 483 647)
- bigint: 2^63-1 (9,223,372,036,854,775,807)
En fait, j'ai frappé à la limite à un emploi, j'ai travaillé à. L'erreur est:
Msg 8115, Niveau 16, État 1, Ligne 1 Erreur de dépassement arithmétique conversion d'IDENTITÉ pour le type de données int. Dépassement de capacité arithmétique s'est produite.
Il y a quelques corrections à ce que je peux penser à du haut de ma tête. Le numéro 1 est probablement très difficile et pas très probable, le nombre 2 est facile, mais sera probablement causer des problèmes dans votre base de code.
- Si la colonne d'identité n'est pas question pour vous (ce n'est pas une Clé Étrangère, etc.) ensuite, vous pouvez simplement effectuer un réamorçage de la base de données et réinitialisation de la colonne d'identité.
- Changer votre colonne d'identité à un plus grand nombre. Ainsi, par exemple, si vous avez débordé un int, changer votre colonne d'identité d'un grand int. Bonne chance débordante qu' :)
Il y a probablement d'autres corrections, mais il n'y a pas de solution miracle facile. J'espère juste que cela ne se produise pas dans un tableau qui est le centre d'un tas de relations, parce que si c'est le cas, vous êtes dans beaucoup de douleur. Il n'est pas difficile de résoudre, juste une tâche fastidieuse et longue.
Description des types de données:
BIGINT Integer data from -2^63 through 2^63 - 1
INT Integer data from -2^31 through 2^31 - 1
SMALLINT Integer data from -2^15 through 2^15 - 1
TINYINT Integer data from 0 through 255
Lorsque vous atteignez la limite supérieure, l'auto-incrémentation passe à la limite inférieure.