如何在T-SQL中正确构建collat​​e命令?

我正在尝试跨两个链接的服务器编写查询。设置了适当登录的链接后,我收到了这个整理错误:   无法解决排序规则冲突   在“SQL_Latin1_General_CP1_CI_AS”之间   和“Latin1_General_CI_AS”中的   等于操作。 这对我来说是新的,但它看起来像是一个charset冲突,所以我用Google搜索并发现了可以添加到我的连接中的collat​​e命令。但是我试过了两个
va ON V_ID1 = c1.strData COLLATE Latin1_General_CI_AS
va ON V_ID1 = c1.strData COLLATE SQL_Latin1_General_CP1_CI_AS
似乎都没有解决错误。我究竟做错了什么? 编辑:整个查询太大,无法发布,并希望人们过滤,但这是相关的位:
   select
        rel.intParentAttributeId as intItemId,
        case va.type
        when 'SM' then 120000000
        when 'FB' then 110000000
        when 'RO' then 100000000
        when 'SP' then 90000000
        when 'A' then 80000000
        when 'D' then 70000000
        when 'P' then 60000000
        when 'SR' then 50000000
        when 'FN' then 40000000
        when 'RL' then 30000000
        when 'VO' then 20000000
        when 'RE' then 10000000
        end
        +

        rel.intParentAttributeId
        as fltStrength
        from
        AttributeMap ky

        join Catalogue c1 on c1.intRowId=ky.intChildAttributeId and c1.intAttributeTypeId=@intsimilarAtt

        join

        [SQLSERVERNAME].[SchemaName].dbo.VidAssc
         va on V_ID1 COLLATE SQL_Latin1_General_CP1_CI_AS = c1.strData COLLATE SQL_Latin1_General_CP1_CI_AS


        join Catalogue c2 on c2.strData=V_ID2 and c2.intAttributeTypeId=@intsimilarAtt

        join AttributeMap rel on rel.intChildAttributeId = c2.intRowId

        join @tmpSeeds s on s.intItemId = ky.intParentAttributeId

        group by rel.intParentAttributeId,va.Type

        )sqi
干杯, 马特     
已邀请:
尝试将
COLLATE
放在左侧:
FROM Table1 AS t1
INNER JOIN Table2 AS t2
 ON t1.ID COLLATE Latin1_General_CI_AS
  = t2.ID --COLLATE Latin1_General_CI_AS --optionally on the right if needed.
    
好的,终于找到了修复。这是你要做的: 在sql server manager到Server Objects> Linked Servers>并找到有问题的链接服务器。 右键单击>属性 在“服务器选项”下,将“使用远程排序规则”设置为“假” 和“Collat​​ion Name”到“Latin1_General_CI_AS”     

要回复问题请先登录注册