SQL 列排序规则更改

SQL column collation change

我想将列排序规则更改为某种波兰语排序规则并能够正确查看波兰语字符。所有三个,原始列,原始 table 和原始数据库,使用 SQL_Scandinavian_CP850_CS_AS.

对于列排序规则更改,我尝试过:

SELECT CAST([ColumnName] AS nvarchar(50)) COLLATE Polish_CI_AS FROM t1

这 3 个示例字母出现在斯堪的纳维亚语 table:

SELECT 'ØùÒ' COLLATE Polish_CI_AS

结果中应该 return łŚń。相反,它显示 'OuO'.

不幸的是SQL服务器不支持 OEM 代码页 852,如果您想将“ØùÒ”转换为“łşń”,您需要将代码页 850 数据转换成该代码页。您可以更改数据排序规则,而无需 SQL 服务器通过 varbinary 进行 CASTing 进行字符映射,但这仅适用于支持的排序规则。

另一种方法可能是创建一个用户定义的函数,该函数接受一个字符串并一次映射一个字符,因此 Ø 映射到 ł 等。需要做的很繁琐,有(最多)127 个字符映射,但不难。