8152: String or binary data would be truncated (les données chaîne ou binaires seraient tronquées)
SQL ServerQue signifie cette erreur ?
Vous avez tenté d'écrire des données plus longues que la longueur définie d'une colonne. SQL Server arrête l'instruction pour éviter une perte de données (2628 est la version plus récente de la même erreur, qui indique la colonne/la valeur).
Cause
Par exemple, écriture de 15 caractères dans une colonne VARCHAR(10), colonne cible plus étroite que la source, incohérence de type/longueur de données, ou taille de champ insuffisante lors d'ETL/de transferts.
Comment la corriger
Élargissez la colonne pour qu'elle contienne les données (ALTER TABLE ... ALTER COLUMN) ou raccourcissez les données. Sur SQL Server 2019+, utilisez l'erreur 2628, qui indique la table/la colonne/la valeur en dépassement ; sur les versions plus anciennes, vérifiez les colonnes une par une avec LEN() pour trouver la ligne fautive. Lors des transferts, alignez les longueurs des schémas source et cible.
Autres entrées pour ce moteur
- 2601Cannot insert duplicate key row in object with unique index. The duplicate key value is ... (ligne à clé en double non insérable dans un objet avec index unique)
- 547The INSERT/UPDATE/DELETE statement conflicted with the FOREIGN KEY / CHECK constraint (instruction en conflit avec une contrainte FOREIGN KEY / CHECK)
- 18456Login failed for user (échec de connexion pour l'utilisateur)
- 2628String or binary data would be truncated in table, column ...; truncated value (données tronquées dans la table, la colonne ... ; valeur tronquée)
- 1222Lock request time out period exceeded (délai de la demande de verrou dépassé)
- 9002The transaction log for database is full due to ... (le journal des transactions de la base est plein)
- 1105Could not allocate space for object in database because the filegroup is full (allocation d'espace impossible : groupe de fichiers plein)