代码之家  ›  专栏  ›  技术社区  ›  Jaco Pretorius

将大量行串联成单个字符串

  •  2
  • Jaco Pretorius  · 技术社区  · 15 年前

    问题是字符串似乎在大约33000个字符后被截断。我完全不知道为什么会这样。

    编辑:我从这里给出的答案中得到了一些建议,并将解决方案改为使用VARCHAR(MAX)。但是我还是被切断了,但方式很奇怪。看起来变量没有溢出,只是没有附加所有的值。

    DECLARE @Result VARCHAR(MAX)
    SET @Result = ''
    
    SELECT @Result = @Result + ltrim(isnull(format,'')) + '&nbsp;' + text + '<BR></TD></TR><TR><TD CLASS="GEN" align="left" BGCOLOR="#E9ECFD">' 
    FROM SomeTable
    

    这个 真正地

    3 回复  |  直到 15 年前
        1
  •  1
  •   AdaTheDev    15 年前

    因为我有很多行 使用文本

        2
  •  1
  •   codeulike    15 年前

    varbinary(16) 作为更新 text

    尝试使用 bigint varbinary

    UPDATETEXT 已弃用,Microsoft建议您使用 UPDATE 用一个 WRITE 改为子句- see here .

    示例来自 this msdn 页码:

    UPDATE Production.Document
    SET DocumentSummary .WRITE (N'features',28,10)
    

    你应该用 varchar(max)

        3
  •  -1
  •   vulkanino    15 年前

    你最好把串接的字符串写进一个文件。 http://www.simple-talk.com/code/WorkingWithFiles/spWriteStringTofile.txt