Edu*_*rdo 14 sql varchar sql-server-2005 string-concatenation max
我正在尝试这样做:
DECLARE @myVar VARCHAR(MAX)
Loop with cursor
select @myVar = @myVar + bla bla bla
end loop
Run Code Online (Sandbox Code Playgroud)
循环结束时,@ myVar不完整,只包含8000个字符.
我曾尝试使用文本,但不允许使用本地变量.
对这个案子有什么好处?
xml var?
我刚看过这篇文章:
如何在SQL Server 2000中传递大于varchar(8000)的字符串参数?
还有其他人通过网络.
问候.
mar*_*c_s 31
严重 - 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)
Run Code Online (Sandbox Code Playgroud)
这将在1000次迭代后返回高于 8000个字符的值.
关键是:如果你正在使用varchar(max),你需要确保始终将所有字符串强制转换varchar(max)- 就像我在这个例子中所做的那样.否则,SQL Server将回退到"常规" varchar处理,而且确实限制为8000个字符....
| 归档时间: |
|
| 查看次数: |
31807 次 |
| 最近记录: |