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

时间:2011-07-29 10:05:17

标签: sql-server sql-server-2005

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

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

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

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

整理属性/参与

  • 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

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

2 个答案:

答案 0 :(得分:6)

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

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

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

答案 1 :(得分:0)

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

区分大小写

如果以相同方式对待 A a B b 等,不区分大小写。由于计算机使用 ASCII码区分输入,因此计算机对待 A a 的方式有所不同。

口音敏感度

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

假名灵敏度

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

宽度灵敏度

如果对单字节字符(半角)和表示为双字节字符(全角)的相同字符进行区别对待,则它对宽度敏感。

更多信息here。我希望这个答案有帮助。