SQLServer的字段能存储的长度远远达不到该字段的数据类型限制的长度

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQLServer的字段能存储的长度远远达不到该字段的数据类型限制的长度相关的知识,希望对你有一定的参考价值。

我分别设置字段类型为varchar , nvarchar , text , ntext 并且把长度设置为他们的最大长度,但无论是哪种类型插入的字数一多(绝对远远小于设置的长度),就会提示错误:“输入的值与数据类型或长度的长度不一致或超出网格缓冲区限制”,这是为什么,该怎样解决?求教高手

用sql语句可以插进去,也可以显示出来,但如果过长的话插进去后在企业管理器里看不到数据,可以用语句查询出来 参考技术A varchar 和 text 都是根据字符的长度来调正它的长度的,只有nvarchar,ntext是固定长度的。
你把图截下来,我看看。
参考技术B 你可以变量定为char 参考技术C varchar和text是存储的数字是内存空间,而nvarchar和ntext储存的字数,
例如:
varchar(20)就只能存储20的空间数(一个汉字占两个空间数,字母,数字占一个空间数),那么就只能放10个汉字,或20个数字,字母,text也一样
nvarchar(20)为可变形,里面为20就只能放20个(数字,字母,汉字)随便放,就不记空间,就记个数
参考技术D text 字段,它是很长的....

SQLServer 中怎么计算字段类型为text 的长度?急!

参考技术A len(READTEXT([text]))
datalength(),返回为字节数
len(cast(列名
as
varchar))
你看哪种好就用哪种
参考技术B 文本数据类型:
char、varchar
最大可以存储8000个字符(每个字符占一个字节)
nchar、nvarchar
最大可以存储4000个字符(每个字符占两个字节)
如果需要存放更大数据,可以考虑以下方法:
方法①:将多个列视为复合列,每次使用时组合起来(麻烦,省内存)
方法②:使用text、ntext超大文本类型(简单,耗内存)

以上是关于SQLServer的字段能存储的长度远远达不到该字段的数据类型限制的长度的主要内容,如果未能解决你的问题,请参考以下文章

sqlserver数据库varchar(40)能存放多少汉字?

sqlserver存储过程 限制字段长度

SQLServer中的执行计划缓存由于长时间缓存对性能造成的干扰

MySQL到底能有多少个字段

sql server 货币 字段 类型 一般用啥类型?

SQL Server中有关约束(constraint)的一些细节