Запрос SQL Server к двум связанным базам данных с использованием разных параметров сортировки - PullRequest
3 голосов
/ 03 ноября 2008

У меня есть 2 удаленные базы данных как часть запроса

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

Проблема в том, что serverA использует сопоставление Latin1_General_BIN, а serverB использует Latin1_General_CP1_CP_AS и запрос отказывается выполняться.

Оба сервера являются серверами SQL 2000. Обе базы данных установлены в камне, поэтому я не могу изменить их параметры сортировки, к сожалению.

Вы, ребята, знаете, как заставить это работать? 1010 *

Обновление: Я нашел альтернативное решение. В свойствах связанного сервера вы можете указать параметры сортировки связанного сервера.

Ответы [ 2 ]

9 голосов
/ 03 ноября 2008

Просто добавьте сопоставление к вашему выбору, например:

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 
    collate Latin1_General_Bin = v.PROJ_CODE

или наоборот. Так что «конвертируйте» одно из сопоставлений в другое.

2 голосов
/ 08 ноября 2011

Или вы можете использовать более общий запрос, как этот:

select * from profile, userinfo
where profile.custid collate database_default = userinfo.custid collate database_default
...