Tsql 如何在T-SQL中正确设置collate命令的框架?

Tsql 如何在T-SQL中正确设置collate命令的框架?,tsql,collate,Tsql,Collate,我正在尝试跨两个链接的服务器编写查询。使用适当的登录设置了链接后,我收到以下collate错误: 无法解决排序规则冲突 在“SQL拉丁语、通用语、CP1、CI、AS”之间 以及 等于操作 这对我来说是新的,但它看起来像是一个字符集冲突,所以我在谷歌上搜索了它,发现了可以添加到join中的collate命令。不过我两个都试过了 va ON V_ID1 = c1.strData COLLATE Latin1_General_CI_AS 及 而且两者似乎都不能解决这个错误。我做错了什么 编辑:整个查

我正在尝试跨两个链接的服务器编写查询。使用适当的登录设置了链接后,我收到以下collate错误:

无法解决排序规则冲突 在“SQL拉丁语、通用语、CP1、CI、AS”之间 以及 等于操作

这对我来说是新的,但它看起来像是一个字符集冲突,所以我在谷歌上搜索了它,发现了可以添加到join中的collate命令。不过我两个都试过了

va ON V_ID1 = c1.strData COLLATE Latin1_General_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
干杯,
马特

试着把
校对表
也放在左侧:

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.

请尝试将
校对
也放在左侧:

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管理器中,转到服务器对象>链接服务器>并查找有问题的链接服务器

右键单击>属性

在服务器选项下,将“使用远程排序规则”设置为“False”
并将“排序规则名称”改为“Latin1\u General\u CI\u AS”

确定,最终找到了修复方法。以下是您必须做的:

在sql server管理器中,转到服务器对象>链接服务器>并查找有问题的链接服务器

右键单击>属性

在服务器选项下,将“使用远程排序规则”设置为“False”
将“排序规则名称”改为“Latin1\u General\u CI\u AS”

您能发布整个查询吗?你可能认为里面有些东西是理所当然的。你能把整个问题都贴出来吗?你可能认为里面有些东西是理所当然的。谢谢你的帮助。尝试此操作会导致错误:无法解决equal to operation.Hi中“SQL\u Latin1\u General\u CP1\u CI\u AS”和“Latin1\u General\u CI\u AS”之间的排序规则冲突。谢谢你的帮助。尝试此操作会导致错误:无法解决等于操作中“SQL\u Latin1\u General\u CP1\u CI\u AS”和“Latin1\u General\u CI\u AS”之间的排序规则冲突。