nvarchar(max)字段 超4000无法正常读取

ahwood 2013-01-02 05:43:28
如下:
article表有content字段,类型是nvarchar(max)
其中有条实际记录的content有5960长,但取到@v的内容长度只有4000
如:
declare @v nvarchar(max)
select @v=(content) from article where id=1000
select len(@v)

返回结果:4000

如何解决?
...全文
800 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
ahwood 2013-01-03
  • 打赏
  • 举报
回复
的确是我一个自动生成CLR的函数写错了导致数据截断,谢谢3楼提醒。
-晴天 2013-01-02
  • 打赏
  • 举报
回复
declare @v nvarchar(max)
set @v=space(8000)
set @v=@v+space(3456)
select len(@v)
/*
--------------------
11456

(1 行受影响)

*/
中国风 2013-01-02
  • 打赏
  • 举报
回复
不会出现楼主的情况
declare @article table(content nvarchar(max))
insert into @article select cast(REPLICATE('A',4000) as nvarchar(max))+REPLICATE('B',4000)

declare @v nvarchar(max)
select @v=(content) from @article 
select len(@v)
/*
8000
*/
whxp2010 2013-01-02
  • 打赏
  • 举报
回复
可能是存储过程或者函数写入时截断了,楼主自己检查一下, SQLSERVER是没有这个限制的。
duoxu1983 2013-01-02
  • 打赏
  • 举报
回复
确定下content在表中的字段类型是不是nvarchar(max)
發糞塗牆 2013-01-02
  • 打赏
  • 举报
回复
你是超过4000存不进去?还是觉得存不进去?字符型的数据的长度好像要用这个来查的: select datalength(@v)

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧