社区
疑难问题
帖子详情
我想问一下数据类型。
redv
2002-12-31 12:38:45
在MSSQL中,有以下数据类型:
char nchar
varchar nvarchar
text ntext
也就是这几种数据类型间有个关系,从字面看相差一个“n”,从意义上看前者的数据是非Unicode,最大允许长度为后者的两倍;后者为Unicode,最大允许长度为前者的一半。
请问这两类数据类型如何选择,就是说我什么时候用不带“n”的数据类型,什么时候用带“n”的数据类型?并给出理由。
...全文
34
8
打赏
收藏
我想问一下数据类型。
在MSSQL中,有以下数据类型: char nchar varchar nvarchar text ntext 也就是这几种数据类型间有个关系,从字面看相差一个“n”,从意义上看前者的数据是非Unicode,最大允许长度为后者的两倍;后者为Unicode,最大允许长度为前者的一半。 请问这两类数据类型如何选择,就是说我什么时候用不带“n”的数据类型,什么时候用带“n”的数据类型?并给出理由。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
ian2000
2003-01-02
打赏
举报
回复
declare @a nvarchar(20) --占40个字节
declare @b varchar(20) --占20个字节
这样才对吧!
19191919
2003-01-02
打赏
举报
回复
同意
pengdali
2003-01-01
打赏
举报
回复
因为n是用Unicode编码存储的
非n是ascii编码存储的
nvarchar最大是4000
varchar最大是8000
如果你不考虑多语言,移植性就用varchar
否则就用nvarchar
xpilot
2003-01-01
打赏
举报
回复
通俗点说非Unicode的varchar(8000),text(2G)这些类新的存储容量是,比Unicode的nvarchar(4000),ntext(1G)的容量多一倍,当然容量的提升所要付出的代价就是适应性的降低,比如使用非Unicode的话在不同的操作系统中可能会出现乱吗等情况.
总而言之,如果不求系统兼容性,比如只作某种语言版本的系统,大可使用非Unicode类新,不过以我经验比较偏爱使用Unicode的字段.
KnowLittle
2002-12-31
打赏
举报
回复
declare @a nvarchar(20) --占两个40个字节
declare @b varchar(20) --占两个20个字节
大力,为什么是两个?
hjhing
2002-12-31
打赏
举报
回复
如果你的字段需要支持 汉字、罗马字母等就用N
pengdali
2002-12-31
打赏
举报
回复
declare @a nvarchar(20) --占两个40个字节
declare @b varchar(20) --占两个20个字节
set @a=N'大力' --常量前要加N
set @a='大力'
tjan
2002-12-31
打赏
举报
回复
存储的数据如果仅包括英文字符和数字,那么可以选择不带 “n”的,如果包括英文字符和数字以外的字符,比如汉字、罗马字母等就需要使用带“n”的。
疑难问题
22,209
社区成员
121,730
社区内容
发帖
与我相关
我的任务
疑难问题
MS-SQL Server 疑难问题
复制链接
扫一扫
分享
社区描述
MS-SQL Server 疑难问题
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章