链接服务器列级排序规则

Posted

技术标签:

【中文标题】链接服务器列级排序规则【英文标题】:Linked Server Column level Collation 【发布时间】:2019-01-24 13:33:18 【问题描述】:

我有一个 MSSQL 2012 链接服务器,数据库排序规则设置为 Latin1_General_100_BIN2。

我正在尝试从排序规则设置为 SQL_Latin1_General_CP1_CI_AS 的 MSSQL 2005 数据库查询链接服务器。

当我执行以下查询时,我收到:遇到了无效的表格数据流 (TDS) 排序规则。

SELECT
reel_key COLLATE SQL_Latin1_General_CP1_CI_AS
FROM [SomeServer].[SomeDatabase].[dbo].[SomeTable]

链接服务器的 reel_key 字段是一个 char(7)。

从我所阅读和研究的内容来看,这应该有效,但事实并非如此。我哪里错了?

【问题讨论】:

【参考方案1】:

尝试设置属性链接服务器 使用远程整理 = true 并设置排序规则名称

EXEC sp_serveroption 'SERVER', 'use remote collation', 'true'
EXEC sp_serveroption 'SERVER', 'collation name', 'SQL_Latin1_General_CP1_CI_AS'

或强制排序

SELECT
reel_key 
FROM [SomeServer].[SomeDatabase].[dbo].[SomeTable]
ORDER BY reel_key  COLLATE SQL_Latin1_General_CP1_CI_AS

【讨论】:

两者都没有成功。如果有帮助,这是我的设置... EXEC master.dbo.sp_serveroption @server=N'SERVER', @optname=N'collat​​ion compatible', @optvalue=N'false' EXEC master.dbo.sp_serveroption @server= N'SERVER',@optname=N'排序规则名称',@optvalue=N'SQL_Latin1_General_CP1_CI_AS' EXEC master.dbo.sp_serveroption @server=N'SERVER',@optname=N'使用远程排序规则',@optvalue=N'真的'

以上是关于链接服务器列级排序规则的主要内容,如果未能解决你的问题,请参考以下文章

SCCM 2012 SQL 排序规则修改方法

SQLSERVER 修改数据实例的排序规则

数据库排序安装错误后修复的惊魂手册

如何修复 SQL Server 查询中的排序规则冲突?

使用 2 个版本的 SQL Server 的排序规则冲突

数据库:是不是有供应商支持列级锁定?