468: Cannot resolve the collation conflict
SQL ServerQue 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.
Autres entrées pour ce moteur
- 3702Cannot drop database because it is currently in use (impossible de supprimer la base : elle est en cours d'utilisation)
- 15138The database principal owns a schema in the database, and cannot be dropped (le principal de base de données possède un schéma et ne peut pas être supprimé)
- 1934INSERT/UPDATE failed because the following SET options have incorrect settings (échec d'INSERT/UPDATE : les options SET suivantes sont mal réglées)
- 4864Bulk load data conversion error (type mismatch or invalid character) (erreur de conversion lors du chargement en masse : type incompatible ou caractère invalide)
- 916The server principal is not able to access the database under the current security context (le principal serveur ne peut pas accéder à la base dans le contexte de sécurité actuel)