Faire une jointure entre deux bases de données avec différents classments sur SQL Server et get une erreur

Je sais, je sais avec ce que j'ai écrit dans la question que je ne devrais pas être surpris. Mais ma situation fonctionne lentement sur un système POS hérité et mon prédécesseur n'était apparemment pas au courant de JOINs alors quand j'ai regardé dans l'une des pages internes qui charge pendant 60 secondes, je vois que c'est assez rapide, réécrire ces 8 requêtes en une seule requête avec situation JOINs. Le problème est que, en plus de ne pas connaître les JOIN, il semble également avoir eu un fétiche pour plusieurs bases de données et de surprise, surprise qu'ils utilisent des collations différentes. Le fait est que nous utilisons tous les caractères latins «normaux» que les anglophones considéreraient comme l'alphabet entier et que tout cela sera hors d'usage dans quelques mois alors un pansement est tout ce dont j'ai besoin.

Longue histoire courte est que j'ai besoin d'une sorte de méthode pour lancer à un seul classment afin que je puisse comparer deux champs de deux bases de données.

L'erreur exacte est:

Impossible de résoudre le conflit de classment entre "SQL_Latin1_General_CP850_CI_AI" et "SQL_Latin1_General_CP1_CI_AS" dans l'opération égale à.

    Vous pouvez utiliser la clause collate dans une requête (je ne trouve pas mon exemple pour le moment, donc ma syntaxe est probablement incorrecte – j'espère que cela vous oriente dans la bonne direction)

    select sone_field collate SQL_Latin1_General_CP850_CI_AI from table_1 inner join table_2 on (table_1.field collate SQL_Latin1_General_CP850_CI_AI = table_2.field) where whatever 

    Un moyen général consiste à contraindre le classment à DATABASE_DEFAULT. Cela supprime le encoding en dur du nom de classment qui pourrait changer.

    Il est également utile pour les variables de tables et de tables temporaires, et lorsque vous ne connaissez pas le classment du server (par exemple, vous êtes un fournisseur qui place votre système sur le server du client)

     select sone_field collate DATABASE_DEFAULT from table_1 inner join table_2 on table_1.field collate DATABASE_DEFAULT = table_2.field where whatever