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

eth*_*hem 18 sql-server sql-server-2005

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

我在stackoverflow.com上找到了关于这个问题的一篇很好的相关文章: 如何选择SQL Server数据库的整理

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

  • 整理用于排序和比较):
  • 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

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

dev*_*vio 6

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

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

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


Sha*_*Dev 6

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

\n\n

区分大小写

\n\n

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

\n\n

重音敏感度

\n\n

如果a\xc3\xa1o\xc3\xb3以相同的方式处理,则它不区分重音。计算机对a\xc3\xa1的处理方式不同,因为它使用 ASCII 代码来区分输入。就像a的 ASCII 值是97\xc3\xa1225

\n\n

假名敏感度

\n\n

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

\n\n

宽度灵敏度

\n\n

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

\n\n

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

\n