T-SQL Unicode“单词”定义

时间:2009-06-25 01:46:26

标签: sql-server tsql

我是Microsoft SQL Server 2005/2008中的Unicode新手。我将我的数据库转换为使用NVarChar()而不是VarChar()。我惊讶地发现排序与VarChar()不同。我在StackOverflow上找到了另一个参考,对于SQL Sorting and hyphens来说,解释Unicode排序是在“单词”的基础上完成的。经过更多的研究,我找到了Unicode Consortium网站(www.unicode.org),特别是Unicode文本分割(www.unicode.org/reports/tr29)网站,讨论了这一点,它确实提到了连字符作为特例。 (抱歉,作为新用户,我无法发布这些超链接)。

但是我想要定义的正是这些规则对于不同的排序规则,特别是对于美国英语排序规则。还有哪些特殊情况?例如,连字符是唯一被忽略的字符吗?或者其他标点符号,如撇号?

非常感谢任何链接或指示。

1 个答案:

答案 0 :(得分:1)

不要使用SQL排序规则;使用Windows。这在the KB article.

中提到

来自“Windows Collation Sorting Styles”:

  

对于Windows排序规则,nchar,   nvarchar和ntext Unicode数据类型   具有相同的排序行为   char,varchar和text非Unicode   数据类型。

但是,您还应该考虑为什么要使用unicode。除了排序问题之外,它还较慢:varchar vs nvarchar performanceeven MS agreee