如何存储字符串变种比VARCHAR(最大值)更大?(How to store a string va

2019-06-27 07:19发布

我试着这样做:

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

当循环结束,@myvar是不完整的,只包含8000个字符。

我已经tryed使用文字,但不允许本地变量。

这将是一个很好的解决了这个案子?

XML是?

我刚才看了这个帖子:

我如何通过一个字符串参数比在SQL Server 2000为varchar(8000)更大?

检查是否串联为varchar(最大值)将超越最大允许的字符

等人通过网络。

问候。

Answer 1:

认真- VARCHAR(MAX)最多可存储2 GB的数据-不仅仅是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个字符....



文章来源: How to store a string var greater than varchar(max)?