joozh 发表于 2016-11-7 02:31:28

关于sql server中的表中记录按记录排序的问题,未有结论

http://topic.csdn.net/t/20050628/09/4109115.html


http://topic.csdn.net/t/20030728/19/2082128.html

SQLServer排序规则基础知识
Microsoft®SQLServer™2000支持多种排序规则。排序规则对控制正确使用语言(如马其顿语或波兰语)或字母表(如西欧语言使用的拉丁字母表Latin1_General)字符的规则进行编码。

每个SQLServer排序规则指定三个属性:   

用于Unicode数据类型(nchar、nvarchar和ntext)的排序次序。排序次序定义字符的排序序列,以及在比较操作中对字符取值的方法。


用于非Unicode字符数据类型(char、varchar和text)的排序次序。


用于存储非Unicode字符数据的代码页。   


说明    不能指定与Unicode数据类型(nchar、nvarchar和ntext)对应的代码页。用于Unicode字符的双字节位模式由Unicode标准定义且不能更改。

可在任何级别上指定SQLServer2000排序规则。安装SQLServer2000实例时,可指定该实例的默认排序规则。每次创建数据库时,可指定用于该数据库的默认排序规则。如果未指定排序规则,数据库的默认排序规则即是实例的默认排 序规则。无论何时定义字符列、变量或参数,都可指定这些对象的排序规则。如果未指定排序规则,将使用数据库的默认排序规则创建这些对象。

如果SQLServer实例的所有用户都使用同一种语言,则应选择支持该语言的排序规则。例如,若所有用户都讲法语,则选择法语排序规则。

如果SQLServer实例的用户使用多种语言,则应选择能对多语种需求提供最佳支持的排序规则。例如,如果用户一般都讲西欧语言,则选择Latin1_General排序规则。当支持使用多种语言的用户时,对所有字符数据都使用Unicode数据类型nchar、nvarchar和ntext最为重要。Unicode旨在消除非Unicodechar、varchar和text数据类型的代码页转换困难。因为排序规则定义用于比较操作的排序次序和Unicode字符的排序,所以当用Unicode数据类型实现所有的列时,排序规则仍会产生不同。即使当使用Unicode数据类型存储字符数据时,也应选择支持大多数用户的排序规则,以防使用非Unicode数据类型实现列或变量。

SQLServer排序规则定义数据库引擎存储和操作字符及Unicode数据的方式。然而,当数据移入应用程序后,在应用程序中进行的字符排序和比较将由计算机上选定的Windows区域设置控制。应用程序使用的字符数据排序规则是由Windows区域设置控制的项目之一,区域设置还定义其它项目,如数字、时间、日期和货币格式。对于MicrosoftWindowsNT®4.0、MicrosoftWindows®98和MicrosoftWindows95,可使用控制面板中的"区域设置"应用程序指定Windows区域设置。对于MicrosoftWindows2000,可使用"控制面板"中的"区域选项"应用程序指定区域设置。有关Windows区域设置的更多信息,请参见MicrosoftWeb站点MSDN®页中的DevelopingInternationalSoftwareforWindows95andWindowsNT4.0。

多个排序规则可对非Unicode数据使用相同的代码页。例如,代码页1251定义西里尔语字符集。多个排序规则(如Cyrillic_General、Ukrainian和Macedonian)都使用该代码页。虽然这些排序规则都使用相同的位集来表示非Unicode字符数据,但在处理字典定义时所应用的排序和比较规则略有不同,而字典定义确定语言或字母表中与排序规则相关的正确字符序列。

因为SQLServer2000排序规则控制Unicode和非Unicode排序次序,所以不会遇到由为Unicode和非Unicode数据指定不同的排序规则而引起的问题。在SQLServer的早期版本中,对代码页号、字符排序次序和Unicode排序规则分别进行指定。SQLServer的早期版本还支持每个代码页有不同数目的排序次序,并为某些代码页提供Windows区域设置中没有的排序次序。在SQLServer7.0中,还可以指定为非Unicode数据选择的排序次序以外的其它Unicode排序次序。这会导致在使用与非Unicode数据相对的Unicode数据时,排序和比较操作返回不同的结果。





另,有参考意义的:Microsoft SQL Server 2000 的国际化功能
http://www.microsoft.com/china/MSDN/library/archives/library/techart/intlfeaturesinsqlserver2000.asp#intlfeaturesinsqlserver2000_topic6
页: [1]
查看完整版本: 关于sql server中的表中记录按记录排序的问题,未有结论