如何选择 SQL Server 数据库的排序规则

9
如果我想使用数据库来存储不同组特殊字符,我应该选择哪种排序规则呢?例如,如果我将排序规则设置为克罗地亚语,并且想要使用俄语西里尔字母、日本字符,但不包括克罗地亚特殊字符,那么我应该使用哪种排序规则呢?
谢谢, Ilija
1个回答

11
  • 使用 nvarchar 存储数据
  • COLLATION 定义排序和比较规则

这意味着您可以在同一列中存储克罗地亚语、俄语和日语等多种语言。

但是,当您想要进行比较 (WHERE MyColumn = @foo) 或排序 (ORDER BY MyColumn) 时,由于排序规则的不同,将无法获得您期望的结果。

然而,如果需要,您可以使用 COLLATE 子句来更改排序规则。例如:ORDER BY MyColumn COLLATE Japanese_something

我建议选择最常见的选项,以涵盖大部分数据。 MSDN 上有这篇也许有用的文章。


如果您想包含尽可能多类型的字符(例如所有Unicode字符),最常见的选项是什么? - Andrew
@andrew 我认为他们的意思是使用nvarchar进行存储,并且可能将默认排序规则设置为最常见的查询场景。我猜排序规则主要用于索引/排序。 - CervEd

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接