代码之家  ›  专栏  ›  技术社区  ›  Phil Bennett

使用不同排序规则对两个链接数据库进行SQL Server查询

  •  3
  • Phil Bennett  · 技术社区  · 16 年前

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

    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 服务器B使用 Latin1_General_CP1_CP_AS 查询拒绝运行。

    这两个服务器都是SQL 2000服务器。不幸的是,这两个数据库都设置在Stone中,所以我无法更改它们的排序规则。

    你们知道怎么让这个工作吗?

    更新: 我找到了另一个解决办法。在链接服务器属性中,可以在其中指定链接服务器的排序规则。

    2 回复  |  直到 13 年前
        1
  •  9
  •   Tomalak    16 年前

    只需将排序规则添加到所选内容,如:

    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
  •  2
  •   competent_tech    13 年前

    或者,您可以使用类似以下更通用的查询:

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