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

来源:互联网 发布:买家淘宝币抵多少钱 编辑:程序博客网 时间:2024/04/30 09:07
http://topic.csdn.net/t/20050628/09/4109115.html


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

SQL   Server   排序规则基础知识  
  Microsoft®   SQL   Server™   2000   支持多种排序规则。排序规则对控制正确使用语言(如马其顿语或波兰语)或字母表(如西欧语言使用的拉丁字母表   Latin1_General)字符的规则进行编码。  
   
  每个   SQL   Server   排序规则指定三个属性:    
   
  用于   Unicode   数据类型(nchar、nvarchar   和   ntext)的排序次序。排序次序定义字符的排序序列,以及在比较操作中对字符取值的方法。  
   
   
  用于非   Unicode   字符数据类型(char、varchar   和   text)的排序次序。  
   
   
  用于存储非   Unicode   字符数据的代码页。    
   
   
  说明     不能指定与   Unicode   数据类型(nchar、nvarchar   和   ntext)对应的代码页。用于   Unicode   字符的双字节位模式由   Unicode   标准定义且不能更改。  
   
  可在任何级别上指定   SQL   Server   2000   排序规则。安装   SQL   Server   2000   实例时,可指定该实例的默认排序规则。每次创建数据库时,可指定用于该数据库的默认排序规则。如果未指定排序规则,数据库的默认排序规则即是实例的默认排 序规则。无论何时定义字符列、变量或参数,都可指定这些对象的排序规则。如果未指定排序规则,将使用数据库的默认排序规则创建这些对象。  
   
  如果   SQL   Server   实例的所有用户都使用同一种语言,则应选择支持该语言的排序规则。例如,若所有用户都讲法语,则选择法语排序规则。  
   
  如果   SQL   Server   实例的用户使用多种语言,则应选择能对多语种需求提供最佳支持的排序规则。例如,如果用户一般都讲西欧语言,则选择   Latin1_General   排序规则。当支持使用多种语言的用户时,对所有字符数据都使用   Unicode   数据类型   nchar、nvarchar   和   ntext   最为重要。Unicode   旨在消除非   Unicode   char、varchar   和   text   数据类型的代码页转换困难。因为排序规则定义用于比较操作的排序次序和   Unicode   字符的排序,所以当用   Unicode   数据类型实现所有的列时,排序规则仍会产生不同。即使当使用   Unicode   数据类型存储字符数据时,也应选择支持大多数用户的排序规则,以防使用非   Unicode   数据类型实现列或变量。  
   
  SQL   Server   排序规则定义数据库引擎存储和操作字符及   Unicode   数据的方式。然而,当数据移入应用程序后,在应用程序中进行的字符排序和比较将由计算机上选定的   Windows   区域设置控制。应用程序使用的字符数据排序规则是由   Windows   区域设置控制的项目之一,区域设置还定义其它项目,如数字、时间、日期和货币格式。对于   Microsoft   Windows   NT®   4.0、Microsoft   Windows®   98   和   Microsoft   Windows   95,可使用控制面板中的"区域设置"应用程序指定   Windows   区域设置。对于   Microsoft   Windows   2000,可使用"控制面板"中的"区域选项"应用程序指定区域设置。有关   Windows   区域设置的更多信息,请参见   Microsoft   Web   站点   MSDN®   页中的   Developing   International   Software   for   Windows   95   and   Windows   NT   4.0。  
   
  多个排序规则可对非   Unicode   数据使用相同的代码页。例如,代码页   1251   定义西里尔语字符集。多个排序规则(如   Cyrillic_General、Ukrainian   和   Macedonian)都使用该代码页。虽然这些排序规则都使用相同的位集来表示非   Unicode   字符数据,但在处理字典定义时所应用的排序和比较规则略有不同,而字典定义确定语言或字母表中与排序规则相关的正确字符序列。  
   
  因为   SQL   Server   2000   排序规则控制   Unicode   和非   Unicode   排序次序,所以不会遇到由为   Unicode   和非   Unicode   数据指定不同的排序规则而引起的问题。在   SQL   Server   的早期版本中,对代码页号、字符排序次序和   Unicode   排序规则分别进行指定。SQL   Server   的早期版本还支持每个代码页有不同数目的排序次序,并为某些代码页提供   Windows   区域设置中没有的排序次序。在   SQL   Server   7.0   中,还可以指定为非   Unicode   数据选择的排序次序以外的其它   Unicode   排序次序。这会导致在使用与非   Unicode   数据相对的   Unicode   数据时,排序和比较操作返回不同的结果。  
   




另,有参考意义的:

Microsoft SQL Server 2000 的国际化功能

http://www.microsoft.com/china/MSDN/library/archives/library/techart/intlfeaturesinsqlserver2000.asp#intlfeaturesinsqlserver2000_topic6
原创粉丝点击