在论坛发帖描述这样一个现象:

  通过SSMS向SQL Server 2005中插入中文数据后,查询出来的结果是???,根本就不显示中文。用图形化和Insert语句后结果也是一样,使用查询分析器操作,情况也是如此。

  在排除了录入有误的情况外,剩下可以解释的就是朋友在SQLSERVER设置的排序规则有问题了。朋友在SQLSEVER2005中使用的排序规则是SQL_Latin1_General_CP1_CI_AS,而不是可以正确显示简体汉字的三种排序规则:

  Chinese_PRC_BIN,

  Chinese_PRC_CI_AS,

  Chinese_PRC_CS_AS。

  让朋友在将SQLSERVER2005对应数据库中将排序规则改成Chinese_PRC_CI_AS,问题解决。

  看看MS对排序规则的解释:排序规则控制 SQL Server 2005 中的字符串物理存储。排  序规则指定表示每个字符的位模式以及存储和比较字符使用的规则。

  也就是说,在SQLSERVER中,排序规则实际上就是字符编码。(真不明白MS为什么又搞出个排序规则这个词?)

  在查询分析器内执行下面语句,可以得到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'男')

转载于:https://www.cnblogs.com/wallis0922/archive/2012/12/13/2815691.html

(转)理解SQLSERVER中的排序规则相关推荐

  1. linux中修改mysql排序规则_MySQL中的排序规则

    MySQL中的排序规则.在新建MySQL数据库或表的时候经常会选择字符集和排序规则.数据库用的字符集大家都知道是怎么回事,那排序规则是什么呢? 排序规则:是指对指定字符集下不同字符的比较规则.其特征有 ...

  2. python中从小到大排序的函数_深入理解Python中的排序函数

    由于 Python2 和 Python3 中的排序函数略有区别,本文以Python3为主. Python 中的排序函数有 sort , sorted 等,这些适用于哪些排序,具体怎么用,今天就来说一说 ...

  3. 数据库中自定义排序规则,Mysql中自定义字段排序规则,Oracle中自定义字段排序规则,decode函数的用法,field函数的用法

    数据库中自定义排序 场景:有一张banner表,表中有一个status字段,有0, 1, 2三个状态位,我想要 1,0,2的自定义排序(这里是重点),然后再进行之上对sequence字段进行二次排序( ...

  4. MySQL中的排序规则

    在新建MySQL数据库或表的时候经常会选择字符集和排序规则.数据库用的字符集大家都知道是怎么回事,那排序规则是什么呢? 排序规则:是指对指定字符集下不同字符的比较规则.其特征有以下几点: 1. 两个不 ...

  5. Mysql中的排序规则utf8_unicode_ci、utf8_general_ci的区别总结

    2019独角兽企业重金招聘Python工程师标准>>> 用了这么长时间,发现自己竟然不知道utf_bin和utf_general_ci这两者到底有什么区别.. ci是 case in ...

  6. SQL SERVER提供了大量的WINDOWS和SQLSERVER专用的排序规则

    初始选择结果 select * from WordDictionary 下面是按照汉字拼音排序 select * from WordDictionary order by word collate C ...

  7. Mysql中的排序规则utf8_unicode_ci、utf8_general_ci的区别

    utf8_unicode_ci和utf8_general_ci对中.英文来说没有实质的差别. utf8_general_ci 校对速度快,但准确度稍差. utf8_unicode_ci 准确度高,但校 ...

  8. 理解Python中的继承规则和继承顺序

    先来看一段代码: class First(object):def __init__(self):print ("first")class Second(object):def __ ...

  9. sqlserver中的字符编码、排序规则、nvarchar和varchar、大N‘‘

    环境: sqlserver 2014 window 10 建议先阅读<细说ASCII.GB2312/GBK/GB18030.Unicode.UTF-8/UTF-16/UTF-32编码> 先 ...

最新文章

  1. Windows 8.1内置微软五笔输入法
  2. python2基本数据类型
  3. 设计优秀API的五大规则
  4. Excel中配置VBA的工作环境
  5. 使用命令行工具mc连接SAP云平台Leonardo机器学习服务的AWS存储
  6. GitHub 支持上传视频文件啦!
  7. if else 工厂模式_没有IF-ELSE的工厂
  8. 使用谷歌语音识别打造语音管家HiVoice
  9. 电脑重装系统Win11时间同步失败怎么办
  10. Numpy的使用方法
  11. MYSQL当前时间与数据库里数据时间做比较
  12. visual studio 2013 快速安全ocx(ActiveX控件)开发
  13. 搜狗词库.scel文件转换为.txt文件(python3)
  14. win10应用商店无法安装
  15. 静态路由的配置(以华为eNSP为例)
  16. elasticsearch 出现yellow 分片有unassigned现象原因
  17. Android增强现实(三)-3D模型展示器
  18. [异常检测] Regularity Learning via Explicit Distribution Modeling for Skeletal Video Anomaly Detection
  19. 第一篇学术论文经验总结(草稿)
  20. 利用ChatGPT学习生物信息数据分析

热门文章

  1. vnpy策略回测如何设置滑点手续费和size
  2. linux过滤端口抓包_TCP 协议三次握手抓包分析amp;查看状态
  3. 如何从0开始,搭建企业的实时数据中台?
  4. editview只输入英文_入门小百科丨如何在电脑/手机输入日语
  5. php asrot,PHP项目部署,Composer install Do not run Composer as root/super user!
  6. python tkinter place布局
  7. nvidia的jetson系列的方案_NVIDIAJetson系统在工业网络中的集成
  8. 力扣 496 下一个更大的元素I
  9. ROS入门 Client Library与roscpp
  10. 【caffe】ubuntu配置matlab接口----matcaffe