Vous avez actuellement une table de base de données de production qui n’avalera plus de données et vous obtenez l’erreur suivante :
Arithmetic overflow error converting IDENTITY to data type INT
Cette erreur se produit lorsque la requête tente d’insérer dans la table résidant dans une base de données Microsoft SQL. L’utilisation si la colonne ID dans les tableaux et le type de données de ce champ était INT permet une valeur maximale de 2 147 483 647. Une fois cette valeur atteinte, Microsoft SQL ne permet pas d’insérer une valeur plus grande et génère cette erreur.
La solution recommandée serait d’utiliser le type de données BIGINT qui permet des valeurs allant jusqu’à 9 223 372 036 854 775 807. Mais il existe une autre solution si la modification de la colonne n’est pas une option.
Il faudra que la valeur d’identité dans le tableau signalant l’erreur soit réensemencée à 1. Cela peut être fait avec la requête suivante :
DBCC CHECKIDENT ('<DatabaseName>.dbo.<TableName>', RESEED, 1)
Where <DatabaseName> is the name of your database and <TableName> is the name of the table encountering the issue.
Remarque : Avant de procéder à la requête, il faudra supprimer les lignes existantes dans la base de données afin d’éviter d’éventuels scénarios de traitement des données parce que les données sont maintenant hors de l’ordre prévu.
Si l’information contenue dans le tableau ou la base de données est importante pour vous ou l’organisation, on peut choisir d’exporter toutes les données du tableau, de supprimer toutes les lignes, puis de réamorcer la base de données. Réimportez ensuite les données (sans la colonne ID) dans la base de données.