Erreur de dépassement arithmétique conversion d'IDENTITÉ pour les données de type tinyint
Je suis en train de concevoir table dans SQL Server 2008 R2 SP2 de base de données Express. J'ai créé une table avec nvarchar
colonne pour les données et tinyint
colonne auto-incrémentée d'identité en supposant que il n'y aura pas plus de quelques lignes (c'est pourquoi j'ai choisi de 0 à 255 tinyint
). Quand j'ajoute de plus de 255 lignes, cette erreur tient survenant de façon permanente, même après que j'ai supprimer toutes les lignes de la table et essayez d'ajouter une nouvelle ligne. Je suis en train de faire cela à l'aide de SQL Server Management Studio Express.
- Comment faire pour forcer le moteur de base de données pour vérifier les index sont gratuits?
- Cela va se passer trop si je change
tinyint
àint
et d'atteindre la limite deint
nombre?
C'est l'erreur qui se produit lorsque la plage de la
IDENTITY
colonne est utilisée, quel que soit le type de données de la colonne. Toutefois:INT
, vous bénéficiez d'au moins 2 milliards de dollars valeurs possibles - qui devrait durer un peu plus longtemps que les 255 vous avez utilisé jusqu'à maintenant....OriginalL'auteur Ondřej | 2014-11-20
Vous devez vous connecter pour publier un commentaire.
Une fois que vous ajoutez 255 lignes, puis de vouloir supprimer toutes les lignes de la table, Mais le compteur de l'échelon de la colonne est déjà mis à 255, même après avoir supprimer toutes les lignes.
Pour résoudre ce problème, vous devez réinitialiser le compteur de l'incrément de la colonne après la suppression de toutes les lignes. Veuillez utiliser ci-dessous requête lors de la suppression de toutes les lignes, de sorte que le compteur de réinitialisation pour réinitialiser à 0. Après l'exécution de cette requête, vous pouvez ajouter des lignes dans la table avec incrémentation des valeurs de la colonne 1 ou de ce que vous définissez lors de la conception d'une table de temps.
Vous pouvez également utiliser la commande truncate table, si vous voulez supprimer toutes les lignes de la table. Truncate également réinitialiser incrémentée de la valeur initiale.
OriginalL'auteur HaveNoDisplayName
Une identité, c'est qu'il va incrémenter la dernière valeur affectée indépendamment de suppressions, de sorte que dès que vous dépassez la capacité du type d'identité, que l'erreur est permanente.
Oui, il va se passer pour n'importe quel type qui risque de déborder.
Cette sorte de vaincre le but d'une identité que l'on est en réutilisant les valeurs précédentes.
OriginalL'auteur Alex K.