sql中n的前缀的意思

sql中n的前缀的意思

ID:34726108

大小:55.13 KB

页数:5页

时间:2019-03-10

sql中n的前缀的意思_第1页
sql中n的前缀的意思_第2页
sql中n的前缀的意思_第3页
sql中n的前缀的意思_第4页
sql中n的前缀的意思_第5页
资源描述:

《sql中n的前缀的意思》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、关于SQLSERVER的N前缀的理解加N前缀指定后面的字符串为UNICODE常量,SQLServer的Unicode数据类型是基于SQL-92标准中的国家字符数据类型。SQL-92使用前缀字符N标识这些数据类型及其值。1,Unicode数据使用SQLServer中的nchar、varchar和ntext数据类型进行存储。对于存1储来源于多种字符集的字符的列,可采用这些数据类型。当列中各项所包含的Unicode字符数不同时(至多为4000),使用nvarchar类型。当列中各项为同一固定长度时(至多为4000个Unicode字符),使用nchar类型。当列中任意项超过4000

2、个Unicode字符时,使用ntext类型。在MicrosoftSQLServer2000中,传统上非Unicode数据类型允许使用由特定字符集定义的字符。字符集是在安装SQLServer时选择的,不能更改。使用非Unicode数据类型存储数据时,如varchar,char,text等,如果未指定字符排序序列时(字符集),使用默认的字符集,即使为某个字段指定了字符排序序列时,如果SQLServer默认的排序序列与指定字段的排序序列不同时,不加N的话也会产生乱码,如默认的字符集是单字节的字符集如拉丁字符集(Collationname为Latin1_General_CI_AS)

3、的时候,如果定义Name为Varchar类型,字符集为中文字符集时(Collationname为Chinese_PRC_CI_AS),用如下的插入语句也会乱码inserta(name)values('AA中'),因为数据插入的时候,默认还是用Latin1_General_CI_AS字符集送到服务器,再转换为Collationname为Chinese_PRC_CI_AS时,产生乱码,但如果改为如下的时候:inserta(name)values(N'AA中')则能正确插入,因为通过N前缀,以UNICODE的形式送到SQLSERVER,然后再转换成Chinese_PRC_CI_A

4、S时,就不会产生乱码。2,UNICODE和非UNICODE之间的转换2-1UNICODE--〉非UNICODE:Convert(varchar(50),nameCollateChinese_PRC_CS_AS_KS_WS)--name是nvarvhar类型的,如name是'AA中'的时候SelectDATALENGTH(Convert(varchar(50),nameCollateChinese_PRC_CS_AS_KS_WS))fromx,返回的长度为4(UNICODE的时候为6)2-2非UNICODE--〉UNICODE的时候:Convert(nvarchar(50),

5、name)--name是varchar类型的时候如name是'AA中'的时候SelectDATALENGTH(Convert(nvarchar(50),name))fromx,返回的长度为6(非UNICODE的时候为4)3,试验归类测试SQL:------------------------------------------------------------droptableacreatetablea(avarchar(2))insertintoavalues('a')insertintoavalues(N'a')insertintoavalues('深圳')inser

6、tintoavalues(N'深圳')selecta,len(a),datalength(a)fromadroptable#acreatetablea(avarchar(2))insertinto#avalues('a')insertinto#avalues(N'a')insertinto#avalues('深圳')insertinto#avalues(N'深圳')selecta,len(a),datalength(a)from#a------------------------------------------------------------droptableacr

7、eatetablea(avarchar(8000))insertintoaselectREPLICATE('a',8000)insertintoaselectREPLICATE('深',8000)insertintoaselectREPLICATE(N'a',8000)insertintoaselectREPLICATE(N'深',8000)selecta,len(a),datalength(a)froma3-1.字符集是支持双字节的字符集如中文字符集(Collationname为Chinese_PRC_CI_AS

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。