首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >处理很长的varchar/nvarchar变量?

处理很长的varchar/nvarchar变量?
EN

Stack Overflow用户
提问于 2016-12-27 20:07:24
回答 2查看 100关注 0票数 0

我们有一个脚本,它以html格式创建电子邮件正文,以便它可以与sp_send_dbmail一起发送。

所以我有三个变量:@tableHTML1 varchar(8000)@tableHTML2 varchar(8000)@tableHtmlComplete varchar(max)

执行tsql脚本后,@tableHTML1的len为4768,@tableHTML2为4594。由于@body参数sp_send_dbmail只能接收一个变量,所以我最终执行了set @tableHtmlComplete = @tableHTML1 + @tableHTML2。不幸的是,@tableHtmlComplete的len是8000,因为这是varchar变量的最大大小。

那么在这种情况下我能做什么呢?我需要给@tableHTML2 1加上@tableHTML2 2的内容发电子邮件。

我只会考虑另一个解决方案,如果我试图做的上面是不可行的。

谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-12-27 20:10:26

在连接它们之前将它们转换为varchar(max)

代码语言:javascript
复制
DECLARE @tableHTML1 varchar(8000), @tableHTML2 varchar(8000), @tableHtmlComplete varchar(max)

SET @tableHTML1 = REPLICATE('a',4768);
SET @tableHTML2 = REPLICATE('a',4594);
SET @tableHtmlComplete = CONVERT(VARCHAR(MAX),@tableHTML1) + CONVERT(VARCHAR(MAX),@tableHTML2);

SELECT DATALENGTH(@tableHtmlComplete);

结果: 9362

票数 4
EN

Stack Overflow用户

发布于 2016-12-27 23:16:00

另外,您可以简化Lamak的解决方案,只需将第一个值转换为varchar(max),如下所示:

代码语言:javascript
复制
SET @tableHtmlComplete = CONVERT(VARCHAR(MAX),@tableHTML1) + @tableHTML2;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41351554

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档