首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

关于varchar(max)的长度解决思路

2012-05-20 
关于varchar(max)的长度F1帮助中的说明:最大说明符增强了 varchar、nvarchar 和 varbinary 数据类型的存储

关于varchar(max)的长度
F1帮助中的说明:最大说明符增强了 varchar、nvarchar 和 varbinary 数据类型的存储能力。varchar(max)、nvarchar(max) 和 varbinary(max) 统称为大值数据类型。您可以使用大值数据类型来存储最大为 2^31-1 个字节的数据。


重要提示: 
请使用 varchar(max)、nvarchar(max) 和 varbinary(max) 数据类型,而不要使用 text、ntext 和 image 数据类型。 

问题如下:
现在有一个字段,数据类型是varchar(max),但存储到一定的数据量,自动被截取了,导致数据不完整!

SQL code
SELECT DATALENGTH(paperInfo) FROM dbo.Paper


--------------------
181708
170692
1492
5504
3280

(5 行受影响)

超过181708的部分被截取了!

而后测试过text,ntext,结果一样!


[解决办法]
跟写入数据的方式有关,如下例子.
SQL code
create table #t(id int,x varchar(max))insert into #t(id,x) select 1,replicate('a',200000)select id,datalength(x) from #tid          ----------- --------------------1           8000insert into #t(id,x) select 2,replicate(cast('b' as varchar(max)),200000)select id,datalength(x) from #tid          ----------- --------------------1           80002           200000
[解决办法]
探讨

引用:

VARCHAR(MAX)操作时,给其赋值的也必须是VARCHAR(MAX)的,如果用VARCHAR(N)给VARCHAR(MAX)赋值会截断的。


嗯,这个我知道额!~

热点排行