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 高级管理)
浙公网安备 33010602011771号