2008-11-03 219 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