SQL Server:如何让SQL正确识别ö和ß

时间:2014-07-11 22:38:09

标签: sql sql-server globalization

我目前有一个包含4列的表。对象的ID,另一个表中另一个对象的IDnvarchar数据和bool

PK由前3列组成。

größegrösse冲突,großegrosse冲突

意思是我可以拥有前两个中的一个和后两个中的一个,但不是全部

该列的归类设置为SQL_Latin1_General_CS_AS

我相信这就是问题所在,但这确实可以正确处理许多其他unicode字符。有没有人遇到这个,知道我的问题是什么?

作为参考,上述所有内容都可以正常使用。

gråsse
grøsse

为清晰起见的例子,对我来说这是相同的印刷:

IF (N'grösse' COLLATE Latin1_General_CS_AS = N'größe' COLLATE Latin1_General_CS_AS) 
BEGIN
    PRINT 'EQUAL' 
END

当我预计这些不同时。

1 个答案:

答案 0 :(得分:3)

  

处理许多其他unicode字符正确

对你来说意味着什么? SQL Server中的不同排序规则具有不同的行为。也许您正在寻找像LATIN1_GENERAL_BIN2这样的二进制排序规则。这个只比较代码点。仅当字符串是二进制相同时才会出现重复项。您的示例代码的行为与您希望的一样。

非二进制排序规则尝试应用字典规则。他们对电话簿中的字符串进行排序和比较。