处理很长的varchar / nvarchar变量?

时间:2016-12-27 20:07:24

标签: sql-server tsql

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

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

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

那么在这种情况下我该怎么办?我需要通过电子邮件发送@ tableHTML1加@ tableHTML2的内容。

如果我上面尝试做的事情不可行,我只会考虑另一种解决方案。

感谢。

2 个答案:

答案 0 :(得分:4)

在连接它们之前将它们转换为(*) for (char ch: first + last)

varchar(max)

结果:9362

答案 1 :(得分:0)

作为旁注:您可以通过将第一个值转换为varchar(max)来简化Lamak的解决方案,如下所示:

SET @tableHtmlComplete = CONVERT(VARCHAR(MAX),@tableHTML1) + @tableHTML2;