有关排序规则的一些函数和数据库定义

发布时间:2014-10-25 2:19:27
来源:分享查询网

  有关排序规则的一些函数和数据库定义 /**** by select left('claro',2),in 西安,2009-03-24 17:18:11.840 Microsoft SQL Server 2005 - 9.00.1406.00  (Intel X86)    Mar  3 2007 18:40:02    Copyright (c) 1988-2005 Microsoft Corporation   Enterprise Edition on Windows NT 5.2 (Build 3790: Service Pack 2) ****/ COLLATIONPROPERTY函数: 返回指定排序规则的属性。 --语法: COLLATIONPROPERTY( collation_name , property )   SELECT COLLATIONPROPERTY(name, 'LCID') [排序规则的非Unicode 代码页], COLLATIONPROPERTY(name, 'CodePage') [排序规则的Windows LCID], COLLATIONPROPERTY(name, 'ComparisonStyle') [排序规则的Windows 比较样式。对所有二进制排序规则均返回0], COLLATIONPROPERTY(name, 'Version') [排序规则的版本,从排序规则ID 的版本字段派生而来] FROM sys.fn_helpcollations() cl WHERE (cl.name=N'Chinese_PRC_CI_AS')     --查询Microsoft SQL Server 2005 支持的所有排序规则的列表中的中文排序规则 select * FROM sys.fn_helpcollations() where name  in (N'Chinese_PRC_CI_AS',N'Chinese_PRC_CS_AS')   name   description Chinese_PRC_CI_AS Chinese-PRC, case-insensitive, accent-sensitive, kanatype-insensitive, width-insensitive Chinese_PRC_CS_AS Chinese-PRC, case-sensitive, accent-sensitive, kanatype-insensitive, width-insensitive   /****** 排序规则控制SQL Server 2005 中的字符串物理存储。排序规则指定表示每个字符的位模式以及存储和比较字符使用的规则。 ******/   /******** Windows 排序规则与SQL 排序规则在性能上可能存在着差异。 SQL Server 2005 使用UCS-2 编码方案来存储Unicode 数据。在这一机制下,所有Unicode 字符均用2 个字节存储。 Unicode 与非Unicode 在存储字符数据上的差别取决于非Unicode 数据是否使用双字节字符集存储。 所有非东亚语言和泰语均用单字节存储非Unicode 字符。 因此,Unicode 存储这些语言所用的空间是指定非Unicode 代码页所用空间的两倍。 另一方面,许多其他亚洲语言的非Unicode 代码页用双字节字符集(DBCS) 指定字符存储。 因此,对于这些语言,用非Unicode 和Unicode 存储几乎没有什么区别。   双字节字符集指定字符数据存储的非Unicode 代码页如下: 语言    代码页 简体中文 936   繁体中文 950   日语    932   朝鲜语      949     Unicode 数据对性能的影响由于多种因素而复杂化,这些因素包括: 1、Unicode 排序规则和非Unicode 排序规则之间的差别 2、排序双字节和单字节字符之间的差别 3、客户端与服务器之间的代码页转换   SQL Server 使用Unicode 排序规则来执行用Windows 排序规则定义的非Unicode 数据的字符串比较。 由于这些规则比非Unicode 排序规则复杂得多,所以它们更占用资源。因此,尽管Unicode 排序规则的代价通常更大, 但Unicode 数据与Windows 排序规则定义的非Unicode 数据之间的性能差别通常却很小。   ********/ --注:以上部分信息摘自于SQL Server 2005 联机丛书。

返回顶部
查看电脑版