DBAtlas · Atlas d'exploitation des bases de données

468: Cannot resolve the collation conflict

SQL Server

Que signifie cette erreur ?

Dans une opération (JOIN, UNION, comparaison WHERE ou égalité), deux expressions de chaîne de collations différentes se sont rencontrées et SQL Server n'a pas pu déterminer quelle collation appliquer. L'opération a été annulée en raison de l'ambiguïté.

Cause

Les colonnes comparées sont définies avec des collations différentes ; le plus souvent observé lorsque la collation de la base diffère de celle du serveur/de tempdb, ou lors de jointures entre tables de bases aux collations différentes. Joindre des tables temporaires (collation de tempdb) à des tables permanentes est un déclencheur classique.

Comment la corriger

Précisez une collation explicite dans la comparaison : ... WHERE a.col = b.col COLLATE DATABASE_DEFAULT (ou un nom de collation concret). Utilisez COLLATE DATABASE_DEFAULT lors de la création des colonnes de tables temporaires. Comme correctif durable, alignez les colonnes/bases concernées sur une collation unique et cohérente. Si les incohérences avec tempdb sont fréquentes, DATABASE_DEFAULT est la solution la plus pratique.

Ouvrir dans DBAtlas →

Autres entrées pour ce moteur