Y a-t-il un maximum? SQL Server commencera-t-il à lancer des mesures SQLExceptions lorsque le maximum est atteint? Comment le résolvez-vous? (Archivage?) P>
à partir des ressources SQL Server, je peux voir que le maximum est de 2 147 483 647. Je suis loin de ça, mais j'étais juste curieux. P>
5 Réponses :
Le maximum pour un Si vous essayez de passer au-delà de la taille maximale, vous recevrez cette erreur: p> int code> est en effet 2 147 483 647. Msg 8115, Level 16, State 1, Line 2
Arithmetic overflow error converting IDENTITY to data type int.
Arithmetic overflow occurred.
Le maximum est défini par le type de données, non par le modificateur code> Identity code>. Pour une colonne Je m'attendrais à ce que l'erreur soit soulevée lors de la tentative d'insérer des lignes après avoir frappé le maximum, car la mise en œuvre code> identité code> essaierait toujours d'incrémenter avec chaque insert. P>
Bien qu'il soit certainement possible d'archiver des lignes d'un autre magasin de données et de démarrer des identifiants de réutilisation ( int code>, vous avez déjà compris le maximum. Si vous avez besoin d'un type de données avec une gamme plus grande, Bigint code> est le choix évident, et il peut très bien être marqué identité code>. P>.
tinyint code>: 0 à 255 li>
smallint code>: -32768 à 32767 li>
int code>: -2147483648 à 2147483647 Li>
Bigint code>: -9223372036854775808 à 9223372036854775807 Li>
ul>
DBCC Checkident (travaux, 0) code> réinitialisera le comptoir), ce n'est pas quelque chose que SQL Le serveur offre une boîte hors tension. Vous devrez mettre en œuvre la logique pour cela vous-même et vous devrez davantage de déterminer quel type de problèmes de réutilisation de problèmes pourrait apporter à votre demande. Pour une application Web, par exemple, d'anciennes URL indiquent soudainement de nouveaux documents ou de retourner 404 erreurs? P>
Vous pouvez voir l'erreur en utilisant ce petit exemple l'erreur: p>
Notez que si vous tronquez la table, vous réinitialisez essentiellement l'ID. Peut être utile dans les cas où vous ne pouvez pas laisser tomber et recréer la table. P>
Cette réponse serait améliorée par un lien vers une source de documentation.
Si vous insistez sur l'utilisation par exemple Int Type de données pour votre clé principale et que vous avez atteint la fin de la capacité de ce type de données, vous devez procéder comme suit: P>
Exécutez cette requête sur votre table: p>
DBCC Contempter (nom de table, réseaux, 0) p> li> ol>
De cette façon, votre enregistrement sera inséré par la clé primaire de 1. p>
Mais considérez que si votre PK atteint à 100 0001, vous rencontrerez une erreur car cette clé primaire existe dans votre table. En d'autres termes, vous devez toujours considérer votre clé primaire. P>