De requête de SQL Server à l'encontre de deux bases de données à l'aide de différents classements

J'ai 2 bases de données à distance dans le cadre d'une requête

select p.ID,p.ProjectCode_VC,p.Name_VC,v.*
FROM [serverB].Projects.dbo.Projects_T p
LEFT JOIN [serverA].SOCON.dbo.vw_PROJECT v on
p.ProjectCode_VC = v.PROJ_CODE

Le problème est que serverA utilise le classement Latin1_General_BIN et serverB utilise Latin1_General_CP1_CP_AS et la requête refuse de s'exécuter.

Les deux serveurs sont les serveurs SQL 2000. Les deux bases de données sont définies dans la pierre, donc je ne peux pas changer leurs classements, malheureusement.

Est-il de toute façon vous les gars savent comment obtenir que cela fonctionne?

Mise à jour: j'ai trouvé une solution alternative. Dans les liens Propriétés du Serveur, vous pouvez spécifier le classement du serveur lié.

Si les deux serveurs ont le même classement, vous pouvez définir le classement de compatibilité sur le serveur lié à "true" pour booster les performances.
Petite découverte aujourd'hui: Si vous forcez le classement du serveur lié, puis le moteur de requête peut ne pas être en mesure d'utiliser à distance des index et, au contraire, besoin de récupérer plus de données pour les locaux de comparaison/filtrage! (par exemple, si vous voyez "Remote Scan" plan de requête de l'opérateur, c'est potentiellement un très mauvais signe)

OriginalL'auteur Phil Bennett | 2008-11-03