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

Posted

技术标签:

【中文标题】如何选择 SQL Server 数据库的排序规则【英文标题】:How to choose collation of SQL Server database 【发布时间】:2011-05-31 23:21:46 【问题描述】:

如果我想使用数据库来存储不同组的特殊字符,我该如何选择使用哪种排序规则?例如,如果我将排序规则设置为克罗地亚语并且想要使用俄语西里尔文、除克罗地亚特殊字符之外的日语字符 - 我应该使用哪种排序规则?

谢谢, 伊利亚

【问题讨论】:

【参考方案1】: 您将使用 nvarchar 来存储数据 COLLATION 定义排序和比较

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

但是当您想要比较 (WHERE MyColumn = @foo) 或排序 (ORDER BY MyColumn) 时,由于排序规则,您不会得到您期望的结果。

但是,如果需要,您可以使用 COLLATE 子句对其进行更改。 例如ORDER BY MyColumn COLLATE Japanese_something

我会选择涵盖大部分数据的最常见选项。 MSDN has this maybe useful article

【讨论】:

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

以上是关于如何选择 SQL Server 数据库的排序规则的主要内容,如果未能解决你的问题,请参考以下文章

如何选择 sql server 数据库的排序规则?

SQL Server的排序规则在啥时候能够进行设置或修改?

SQL server中的物理排序和逻辑排序是怎么回事

SQL server中如何更改排序规则

如何修改SQL Server2005排序规则

SQL Server 为 SQL Server 2008 R2 的英文版,如何将 master 数据库的排序规则改为Chinese_PRC_CL_AS