SQL Server数据库使用什么排序规则?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL Server数据库使用什么排序规则?相关的知识,希望对你有一定的参考价值。
我需要选择哪种校对? 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
?
有人可以建议吗?我错了吗?
如果数据模型允许您将数据分成特定于语言的列,则可以使用COLLATE子句为每列显式设置排序规则。
您还可以将COLLATE子句应用于SELECT语句(例如,您将所有语言数据保存在同一位置,并且仅按SELECT中的语言进行过滤)。
据我所知,土耳其语(排序顺序)不包含在Latin1中。
排序规则是指一组确定数据排序和比较方式的规则。使用定义正确字符序列的规则对字符数据进行排序,并使用选项指定区分大小写,重音符号,假名字符类型和字符宽度。
区分大小写
如果以相同的方式处理A和a,B和b等,则它不区分大小写。计算机对待A和a的方式不同,因为它使用ASCII代码来区分输入。
重音敏感度
如果a和á,o和ó以相同的方式处理,则它对重音不敏感。计算机对待a和á的方式不同,因为它使用ASCII代码来区分输入。像a的ASCII值是97,á是225。
假名灵敏度
当日本假名字符平假名和片假名被区别对待时,它被称为假名敏感。
宽度灵敏度
当单字节字符(半宽)和相同字符表示为双字节字符(全宽)时,处理方式不同,则它是宽度敏感的。
更多信息可以在here找到。我希望这个答案有所帮助。
以上是关于SQL Server数据库使用什么排序规则?的主要内容,如果未能解决你的问题,请参考以下文章