sqlserver2005中使用排序规则的一些警告

  最大的问题是兼容性。如果比较两个采用不同的排序规则的文本字段,应使用哪种排序规则来比较呢?必须在代码中提供排序规则名,这让用户非常痛苦。有些排序规则是不可比较的,这更糟糕。考虑在混合排序规则环境中使用链接服务器的情况。如果在当前实例和其他服务器(尤其是SQL Server2000和SQL Server7)之间使用SQL复制,最好首先确认要共享的数据是否使用了相同的排序规则。

  尽可能在企业内部使用同一种排序规则。

  在必要的情况下确保与其他服务器的兼容性。仅当为与其他服务器兼容时才修改默认值。需要注意的是,如果在服务器上安装了早期的SQL Server 版本,它将自动选择一种SQL排序规则。在这种情况下,必须决定是否需要保持与该早期版本的兼容性,如果不需要,可选择一种Windows排序规则。

  SQL排序规则不能用于SQL Server 2005 Analysis Services。如果选择一种SQL 排序规则并安装了Analysis Services,安装程序将自动选择一种与当前SQL 排序规则最接近的Windows排序规则,但这可能导致不一致的结果。为确保数据库引擎和Analysis Services之间的一致性。应使用一种Windows排序规则。

  如果服务器同时有区域设置English(UK)和English(United States),可能发现一个奇怪的结果。English(UK) 的默认排序规则是Latinl_General_CI_AS,而English(United States) 的默认排序规则是SQL_Latinl_General_CPl_CI_AS。需要从这两种排序规则中选择一种合适的,以确保一致性,但它们都使用代码页1252.

  如果就地升级早期的SQL Server版本,应使用安装程序的默认SQL Server排序规则。

  如果要与另一个SQL Server 2005实例进行复制,可在现有系统中使用如下语句获悉其排序规则。

  select serverproperty(N'Collation');

  查看现在系统中使用的字符集,可使用如下语句。

  select serverproperty('sqlcharsetname');

  需要查看所有的排序规则,可使用如下语句。

  select * from ::fn_helpcollations() ;

  例如,如果要对SQL Server7.0或SQL Server2000进行复制,可在当前实例中使用如下命令获悉排序规则信息。

  exec sp_helesort;

(摘自:SQL Server 2005 高级管理)

posted on 2012-04-05 21:18  xuzhenfan  阅读(121)  评论(0)    收藏  举报

导航