Je rencontre parfois ce message d’erreur en faisant des requêtes SQL entre 2 bases de données SQL Server :
Impossible de résoudre le conflit de classement entre « SQL_Latin1_General_CP1_CI_AS » et « French_CI_AS » dans l’opération equal to.
Comme je ne suis sans doute pas le seul, autant partager la solution !
Le problème vient de la comparaison de deux champs n’ayant pas le même classement, il faut donc les forcer à faire pareil.
La solution réside dans ces 2 mots : « COLLATE FRENCH_CI_AS »
Exemple :
SELECT * FROM table1 LEFT OUTER JOIN table2
ON table1.champ1 = table2.champ2 COLLATE FRENCH_CI_AS
Si vous vous servez de sous-requêtes, et que la même erreur se produit, le code marche pareil mais ne se met pas exactement au même endroit, voir ici avec un IN :
SELECT * FROM table1
WHERE table1.champ1 COLLATE FRENCH_CI_AS in (select…)
Bonnes requêtes 2011 @ vous !