2008-11-03 187 views
3

我有2个远程数据库作为查询的一部分SQL Server查询

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服务器。两个数据库都设置了石头,因此不幸的是我无法更改它们的排序规则。

有无论如何你们知道如何得到这个工作?

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

+0

如果两个服务器具有相同的排序规则,可以设置链接服务器上的排序规则的兼容性为“true”,以提高性能。 – super9 2009-07-10 12:16:07

回答

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 

或周围的其他方法。所以将其中一个归类转换为另一个归类。

2

或者你可以用这样一个更通用的查询:

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