我正在尝试跨两个链接的服务器编写查询。使用适当的登录设置链接后,我收到了这个整理错误:
无法解决排序规则冲突 在“SQL_Latin1_General_CP1_CI_AS”之间 和“Latin1_General_CI_AS”中的 等于操作。
这对我来说是新的,但它看起来像是一个charset冲突,所以我用Google搜索并发现了可以添加到我的连接中的collate命令。但是我试过了两个
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
干杯, 马特
答案 0 :(得分:2)
尝试将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.
答案 1 :(得分:2)
在sql server manager到Server Objects>链接服务器>并找到有问题的链接服务器。
右键点击>特性
在“服务器选项”下,将“使用远程排序规则”设置为“假” 和“整理名称”到“Latin1_General_CI_AS”