3

作为查询的一部分,我有 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 服务器。这两个数据库都是一成不变的,所以很遗憾,我无法更改它们的排序规则。

无论如何,你们知道如何让它工作吗?

更新: 我找到了另一种解决方案。在链接服务器属性中,您可以在那里指定链接服务器的排序规则。

4

2 回答 2

9

只需将排序规则添加到您的选择中,例如:

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

或相反。因此,将其中一个排序规则“转换”为另一个排序规则。

于 2008-11-03T14:47:31.243 回答
2

或者您可以使用更通用的查询,如下所示:

select * from profile, userinfo
where profile.custid collate database_default = userinfo.custid collate database_default
于 2011-11-08T02:28:02.377 回答