Запрос SQL Server к двум связанным базам данных с использованием разных параметров сортировки

У меня есть 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. Обе базы данных высечены в камне, поэтому я, к сожалению, не могу изменить их параметры сортировки.

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

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


person Phil Bennett    schedule 03.11.2008    source источник
comment
Если оба сервера имеют одинаковую сортировку, вы можете установить для совместимости сопоставления на связанном сервере значение true, чтобы повысить производительность.   -  person super9    schedule 10.07.2009
comment
Небольшой момент, обнаруженный сегодня: если вы форсируете сопоставление связанного сервера, то механизм запросов может быть не в состоянии использовать удаленные индексы и вместо этого ему потребуется получить больше данных для локального сравнения/фильтрации! (например, если вы видите оператора плана запроса удаленного сканирования, это потенциально очень плохой знак)   -  person Tao    schedule 11.04.2014


Ответы (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 
    collate Latin1_General_Bin = v.PROJ_CODE

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

person Biri    schedule 03.11.2008

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

select * from profile, userinfo
where profile.custid collate database_default = userinfo.custid collate database_default
person djoko soewarno    schedule 08.11.2011