SQL Server数据库使用什么排序规则?

问题描述 投票:18回答:2

我需要选择哪种校对? SQL Server 2008

我在stackoverflow.com上找到了关于这个问题的一篇很好的相关文章:How to choose collation of SQL Server database

所以,如果我理解得很好(参见上面的链接):

  • 整理用于排序和比较):
  • NVARCHAR用于存储数据。

整理属性/ parms

  • CI指定不区分大小写
  • CS指定区分大小写
  • AI指定不区分重音
  • AS指定区分重音

我需要创建一个数据库并存储土耳其语和英语,我会选择CI和AI。我不想要区分大小写且没有重音敏感,所以很容易。我认为英语很明显,但土耳其语有一些特殊的字符,如üçö等。

题:

由于整理与存储数据无关,我将使用NVARCHAR,为什么我应该选择整理Turkish_100_CI_AI,我也可以使用Latin1_General_100_CI_AI,这也是我在SQL Server上的默认设置。两者都是拉丁文。

将ENGLISH和FRENCH存储在同一个数据库中也是同样的问题...为什么我应该使用French_100_CI_AI而不是Latin1_General_100_CI_AI

有人可以建议吗?我错了吗?

sql-server sql-server-2005
2个回答
6
投票

如果数据模型允许您将数据分成特定于语言的列,则可以使用COLLATE子句为每列显式设置排序规则。

您还可以将COLLATE子句应用于SELECT语句(例如,您将所有语言数据保存在同一位置,并且仅按SELECT中的语言进行过滤)。

据我所知,土耳其语(排序顺序)不包含在Latin1中。


0
投票

排序规则是指一组确定数据排序和比较方式的规则。使用定义正确字符序列的规则对字符数据进行排序,并使用选项指定区分大小写,重音符号,假名字符类型和字符宽度。

区分大小写

如果以相同的方式处理A和a,B和b等,则它不区分大小写。计算机对待A和a的方式不同,因为它使用ASCII代码来区分输入。

重音敏感度

如果a和á,o和ó以相同的方式处理,则它对重音不敏感。计算机对待a和á的方式不同,因为它使用ASCII代码来区分输入。像a的ASCII值是97,á是225。

假名灵敏度

当日本假名字符平假名和片假名被区别对待时,它被称为假名敏感。

宽度灵敏度

当单字节字符(半宽)和相同字符表示为双字节字符(全宽)时,处理方式不同,则它是宽度敏感的。

更多信息可以在here找到。我希望这个答案有所帮助。

© www.soinside.com 2019 - 2024. All rights reserved.