架构师_程序员_码农网

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 8681|回复: 0

[技巧] 查看SQLserver编码格式的SQL语句 及 Sqlserver排序规则

[复制链接]
发表于 2016-10-27 12:50:16 | 显示全部楼层 |阅读模式
SELECT  COLLATIONPROPERTY('Chinese_PRC_Stroke_CI_AI_KS_WS', 'CodePage')
下面是查询结果:
936 简体中文GBK
950 繁体中文BIG5
437 美国/加拿大英语
932 日文
949 韩文
866 俄文
65001 unicode UFT-8



QQ截图20161027124941.jpg
在安装SQL SERVER 2008的时候,因为我们选择的都是默认安装,所以在创建数据库的时候,服务器默认选择的排序规则是一个SQL_Latin1_General_CP1_CI_AS排序规则,这样在向数据表中插入文本时候,将无法正常显示,全部以“?”代替。
那么,在我们创建数据库的时候,我们就需要手工指定一个排序规则,可以选择Chinese_PRC_CI_AS排序规则,如下图所示

998954692363887712.jpg



排序规则:
在SQLSEVER2005中使用的排序规则是SQL_Latin1_General_CP1_CI_AS,而不是可以正确显示简体汉字的三种排序规则:
  Chinese_PRC_BIN,
  Chinese_PRC_CI_AS,
  Chinese_PRC_CS_AS。
  看看MS对排序规则的解释:排序规则控制 SQL Server 2005 中的字符串物理存储。排序规则指定表示每个字符的位模式以及存储和比较字符使用的规则。
  也就是说,在SQLSERVER中,排序规则实际上就是字符编码。
  在查询分析器内执行下面语句,可以得到SQL SERVER支持的所有排序规则。
  select * from ::fn_helpcollations()
  排序规则名称由两部份构成,前半部份是指本排序规则所支持的字符集。
  如:Chinese_PRC_CS_AI_WS
  前半部份:指UNICODE字符集,Chinese_PRC_指针对大陆简体字UNICODE的排序规则。
  排序规则的后半部份即后缀含义:
  _BIN 二进制排序
  _CI(CS) 是否区分大小写,CI不区分,CS区分
  _AI(AS) 是否区分重音,AI不区分,AS区分   
  _KI(KS) 是否区分假名类型,KI不区分,KS区分 
  _WI(WS) 是否区分宽度 WI不区分,WS区分 
  区分大小写:如果想让比较将大写字母和小写字母视为不等,请选择该选项。
  区分重音:如果想让比较将重音和非重音字母视为不等,请选择该选项。如果选择该选项,比较还将重音不同的字母视为不等。
  区分假名:如果想让比较将片假名和平假名日语音节视为不等,请选择该选项。
  区分宽度:如果想让比较将半角字符和全角字符视为不等,请选择该选项.
  理解了SQLSERVER中的排序规则后,对于上述问题,可以得出以下结论:
  一:修改SQLSERVER用户数据库为支持中文字符集的排序规则。
  二:对于存在汉字显示??,同时又不想更改数据库上的排序规则,又想要正确显示出汉字的话,建议在设计时全部使用Unicode类型字段,也就是那些以N开头的字段类型,比如nChar,nVarchar,才可以正确显示汉字。
  三:如果不想更改排序规则,又不想更改字段类型,那么就要更改SQL语句,对于所有的汉字,前面也要加上N才可以正确显示。具体的方法请参考下面两条语句:
  查询:select * from tb_Cust where FirstName=N'汪'
  插入:insert tb_Cust(FirstName,LastName,Sex) values(N'汪',N'鑫昊',N'男')
  注:对于SQLSERVER2000以后,修改服务器级别的排序规则会比较麻烦,需要重建Master数据库,为安全以见,不建议直接修改服务器级别的排序规则!

当前,对于已经创建的数据库,我们在该数据库的属性窗口中的选项页面中,也可以更改排序规则,这样向数据表中插入文本时候,就不会出现错误信息了!





上一篇:SQL判断某列中是否包含中文字符或者英文字符
下一篇:SQL判断某列中是否包含中文字符或者英文字符
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

免责声明:
码农网所发布的一切软件、编程资料或者文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。

Mail To:help@itsvse.com

QQ|手机版|小黑屋|架构师 ( 鲁ICP备14021824号-2 )|网站地图

GMT+8, 2024-4-18 09:01

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表