游标中定义nvarchar(max)字符拼接超过8000的问题请教

天边一粒沙 2022-05-21 22:36:07

业务场景:要用mssql查出符合条件的记录,然后用字符串拼装html,字符拼接超过8000个后,后面的字符不显示的问题

问题说明:如下 @body nvarchar(max),由于 #temp 记录较多,发现    select  @body 并未显示查询所有记录,存在有符合条件的记录未显示

请问如何优化下?能够在拼接的字符串中,将所有符合条件的记录组合在一起?
        DECLARE @REMARK nvarchar(max),@Message nvarchar(max);
        DECLARE C_HTMessages CURSOR FAST_FORWARD FOR
        select remark from #temp ;
        OPEN C_HTMessages;
        FETCH NEXT FROM C_HTMessages INTO @remark;
        WHILE @@FETCH_STATUS=0
        BEGIN
            set @Message=ISNULL(@Message,'')+isnull(@remark,'');--可能是这里截断的
            FETCH NEXT FROM C_HTMessages INTO  @remark ;
        END
        CLOSE C_HTMessages;
        DEALLOCATE C_HTMessages;
        set @body= @Beginbody + @Message + @Endbody 
        select  @body

...全文
105 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
吉普赛的歌 版主 2022-05-23
  • 打赏
  • 举报
回复

你这里不是截断了,只是ssms中select 输出不了这么多字符而已。
可以写程序,调取一个 select 中的内容。
https://blog.csdn.net/Hehuyi_In/article/details/107980007

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧