使用 2 个版本的 SQL Server 的排序规则冲突
Posted
技术标签:
【中文标题】使用 2 个版本的 SQL Server 的排序规则冲突【英文标题】:Collation conflict using 2 versions of SQL Server 【发布时间】:2013-12-09 00:00:13 【问题描述】:我正在开发 2 个版本的 SQL Server,即 2005 和 2008 R2。
从 2008 R2 开始,我创建了一个链接服务器,它将连接到较旧的 SQL Server 2005 实例。
我的服务器 (2008) 上有一张桌子,如下所示
成员
id name
0002320 AOne Enterprises Motihari
0002321 AOne Enterprises Siliguri
驻留在远程服务器上的另一个表包含每个代理的活动
id member_code agent rr_no txn_date amount
我在下面发起了一个查询
select top 5 *
from [192.168.6.3].sync.dbo.agents_log
where member_code IN
(select id from members where name like 'AOne Enterprises%')
我试图从分布式数据库中提取 AOne Enterprises 的所有活动日志,因此我需要创建一个链接服务器。
我收到了这个错误:
消息 468,第 16 级,状态 9,第 1 行 无法解决等于操作中“SQL_Latin1_General_CP1_CI_AS”和“Latin1_General_BIN”之间的排序规则冲突。
【问题讨论】:
【参考方案1】:不完全确定您需要什么,但如果它是唯一的整理问题,您可以在下面做
SELECT TOP 5 *
FROM [192.168.6.3].sync.dbo.agents_log
WHERE member_code COLLATE SQL_Latin1_General_CP1_CI_AS
IN (SELECT id
FROM members
WHERE NAME LIKE 'AOne Enterprises%')
我刚刚添加了 COLLATE SQL_Latin1_General_CP1_CI_AS ,也许它可以工作
【讨论】:
以上是关于使用 2 个版本的 SQL Server 的排序规则冲突的主要内容,如果未能解决你的问题,请参考以下文章