理解SQL SERVER中的排序法则,办理项目中无法精确显示中文字符的问题[MSSQL防范]
本文“理解SQL SERVER中的排序法则,办理项目中无法精确显示中文字符的问题[MSSQL防范]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
近来项目中碰到的问题以下:
1、在输入框中输入中文,以下
2、点击SAVE之后呈现??,根本就不显示中文,效果以下:
用图形化和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对排序法则的注释:MS是这样描写的:"在 Microsoft SQL Server中,字符串的物理存储由排序法则掌握.排序法则指定表示每个字符的位情势以及存储和对比字符所利用的法则."
也就是说,在SQLSERVER中,排序法则实际上就是字符编码.(不懂得MS为什么又搞出个排序法则这个词.)
在查询解析器内履行下面语句,可以得到SQL SERVER支持的全部排序法则.
[sql]
select * from ::fn_helpcollations()
排序法则名称由两部份构成,前半部份是指本排序法则所支持的字符集.
如:Chinese_PRC_CS_AI_WS
前半部份:指UNICODE字符集,Chinese_PRC_指针对大陆简体字UNICODE的排序法则.
排序法则的后半部份即后缀含义:www.110hack.com
_BIN 二进制排序
_CI(CS) 能否辨别大小写,CI不辨别,CS辨别
_AI(AS) 能否辨别重音,AI不辨别,AS辨别
_KI(KS) 能否辨别化名范例,KI不辨别,KS辨别
_WI(WS) 能否辨别宽度 WI不辨别,WS辨别
辨别大小写:假如想让对比将大写字母和小写字母视为不等,请挑选该选项.
辨别重音:假如想让对比将重音和非重音字母视为不等,请挑选该选项.假如挑选该选项,对比还将重音差别的字母视为不等.
辨别化名:假如想让对比将片化名和平化名日语音节视为不等,请挑选该选项.
辨别宽度:假如想让对比将半角字符和全角字符视为不等,请挑选该选项
结论以下:
关于存在汉字显示??,同时又不想更改数据库上的排序法则,又想要精确显示出汉字的话,倡议在计划时全部利用Unicode范例字段,也就是那些以N开首的字段范例,比方nChar,nVarchar,才可以精确显示汉字.
假如不想更改排序法则,又不想更改字段范例,那么就要更改SQL语句,关于全部的汉字,前面也要加上N才可以精确显示.具体的办法请参考下面两条语句:
查询:
[sql]
select * from ff_ording where wording1=N'中文'
插入:
[sql]
insert ff_ording(wording1,wording2,remark1) values(N'中文',N'中国',N'备注2')
作者 j2eevic
以上是“理解SQL SERVER中的排序法则,办理项目中无法精确显示中文字符的问题[MSSQL防范]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |