如何存储大于varchar(max)的字符串var



我正在尝试这样做:

DECLARE @myVar VARCHAR(MAX)
Loop with cursor
select @myVar = @myVar + bla bla bla
end loop

循环结束时,@myVar不完整,仅包含8000个字符。

我尝试过使用文本,但不允许使用本地变量。

对于这种情况,什么是好的解决方案?

xml变量?

我刚刚看了这些帖子:

如何在SQLServer2000中传递大于varchar(8000)的字符串参数?

检查连接到varchar(max)是否会超出允许的最大字符数

以及其他通过网络。

谨致问候。

说真的,VARCHAR(MAX)最多可以存储2GB的数据,而不仅仅是8000个字符。。。。。

试试这个:

DECLARE @myVar VARCHAR(MAX) = ''
DECLARE @ix INT = 1
WHILE @ix < 1000
BEGIN
    set @myVar = @myVar + CAST('bla bla bla' AS VARCHAR(MAX))
    SET @ix = @ix + 1
END
SELECT DATALENGTH(@myvar)

这将在1000次迭代后返回一个大于8000个字符的值

重点是:如果您使用varchar(max),您需要确保始终所有字符串显式转换为varchar(max),就像我在本例中所做的那样。否则,SQL Server将返回到"常规"varchar处理,而这实际上被限制为8000个字符。。。。

相关内容

  • 没有找到相关文章

最新更新