sqlserver中 varchar 最大长度是多少?

 我来答
大野瘦子
高粉答主

2019-10-16 · 繁杂信息太多,你要学会辨别
知道小有建树答主
回答量:1227
采纳率:100%
帮助的人:32.6万
展开全部

最大长度8000,用max可以存储达到2G。

例如:

varchar [ ( n | max) ]

可变长度,非 Unicode 字符数据。n 的取值范围为 1 至 8,000。max 指示最大存储大小是 2^31-1 个字节。

在某些情况下,前台应用对过长的字串是无法正确处理的,比如一些表格控制,比如C++定义的字符串变量。

扩展资料:

注意事项

存储限制  

varchar 字段是将实际内容单独存储在聚簇索引之外,内容开头用1到2个字节表示实际长度(长度超过255时需要2个字节),因此最大长度不能超过65535。  

1、编码长度限制  

字符类型若为gbk,每个字符最多占2个字节,最大长度不能超过32766;  

字符类型若为utf8,每个字符最多占3个字节,最大长度不能超过21845。  

若定义的时候超过上述限制,则varchar字段会被强行转为text类型,并产生warning。  

2、行长度限制  

导致实际应用中varchar长度限制的是一个行定义的长度。 MySQL要求一个行的定义长度不能超过65535。若定义的表长度超过这个值,则提示  

ERROR 1118 (42000): Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535. You have to change some columns to TEXT or BLOBs。 

好程序员
2018-07-06 · HTML5前端培训/大数据培训/Java
好程序员
好程序员是IT高端课程培训基地,从平凡到卓越,为梦想而拼搏。
向TA提问
展开全部
MySQL 数据库的varchar类型在4.1以下的版本中的最大长度限制为255,其数据范围可以是0~255或1~255(根据不同版本数据库来定)。在 MySQL5.0以上的版本中,varchar数据类型的长度支持到了65535,也就是说可以存放65532个字节的数据,起始位和结束位占去了3个字 节,也就是说,在4.1或以下版本中需要使用固定的TEXT或BLOB格式存放的数据可以使用可变长的varchar来存放,这样就能有效的减少数据库文件的大小。

VARCHAR值保存时只保存需要的字符数,另加一个字节来记录长度(如果列声明的长度超过255,则使用两个字节)。VARCHAR值保存时不进行填充。当值保存和检索时尾部的空格仍保留,符合标准SQL。VARCHAR类型的实际长度是它的值的实际长度+1

VARCHAR是变长类型,对于其存储需求取决于列值的实际长度(在前面的表格中用L表示),而不是取决于类型的最大可能尺寸。例如,一个VARCHAR(10)列能保存最大长度为10个字符的一个字符串,实际的存储需要是字符串的长度 ,加上1个字节以记录字符串的长度。对于字符串'abcd',L是4而存储要求是5个字节。

Mysql5根据编码不同,存储大小也不同,具体有以下规则:
编码长度限制
字符类型若为gbk,每个字符最多占2个字节,最大长度不能超过32766;
字符类型若为utf8,每个字符最多占3个字节,最大长度不能超过21845。
若定义的时候超过上述限制,则varchar字段会被强行转为text类型,并产生warning。
c) 行长度限制
导致实际应用中varchar长度限制的是一个行定义的长度。 MySQL要求一个行的定义长度不能超过65535。若定义的表长度超过这个值,则提示
ERROR 1118 (42000): Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535. You have to change some columns to TEXT or BLOBs。

总之,mysql的vachar字段的类型虽然最大长度是65535,但是并不是能存这么多数据,最大可以到65533(不允许非空字段的时候),当允许非空字段的时候只能到65532。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
badkano
2015-07-03 · 知道合伙人体育行家
badkano
知道合伙人体育行家
采纳数:144777 获赞数:885359
团长

向TA提问 私信TA
展开全部
  sqlserver中varchar最大长度是8000,但是可以使用varchar(max),可以达到2G。
  关于解释:
  有var前缀的,表示是实际存储空间是变长的,varchar,nvarchar
  所谓定长就是长度固定的,当输入的数据长度没有达到指定的长度时将自动以英文空格在其后面填充,使长度达到相应的长度;而变长字符数据则不会以空格填充,比较例外的是,text存储的也是可变长。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友fc9fa9c
2012-11-14 · TA获得超过363个赞
知道小有建树答主
回答量:184
采纳率:0%
帮助的人:165万
展开全部
最大长度是8000K,可存储汉字为4000K,英文或者数字为8000K
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
平安健康448a98f
2012-11-14 · 超过26用户采纳过TA的回答
知道答主
回答量:87
采纳率:0%
帮助的人:51.4万
展开全部
declare @sql varchar(8000) = '',
@sql2 varchar(max) = ''
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式