34,576
社区成员
发帖
与我相关
我的任务
分享
select len(cast(REPLICATE('a',10000) as varchar(max)))
/*
8000
*/
select len(REPLICATE(cast('a' as varchar(max)),10000))
/*
10000
*/
从这个例子中,可以看出,首先得先把 字符转化为 varchar(max) ,然后在进行处理,这样才能超过8000个字符。
当然,你的问题,像上面版主说的,可能是由于复制导致的。
CREATE TABLE #q (a nvarchar(max))
insert #q(a)
select replicate(cast(N'x' as nvarchar(max)),8000000)
select len(a) 'len',
datalength(a)/1000.0/1000.0 'datalength(MB)'
from #q
/*
len datalength(MB)
-------------------- --------------------
8000000 16.000000000000
(1 row(s) affected)
*/
PS: 因机器性能有限,无法测试2GB的情况.