gpt4 book ai didi

sql-server - 连接 varchar(max) 变量 SQL Server 2005

转载 作者:行者123 更新时间:2023-12-03 12:44:39 25 4
gpt4 key购买 nike

在将多个 @varchar(max) 变量连接在一起以基于多个不同的查询构建电子邮件时,遇到了一个令人头疼的问题。

为了提高效率,我使用多个 varchars 一次构建电子邮件,而不是通过大致相同的查询两次或三次或更多次来仅使用一个 varchars 来构建它

这一直有效,直到我的 varchars 超过 8000 个字符。然后将它们全部连接成一个 varchar(我可以将其放入 msdb.dbo.sp_send_dbmail@body 参数中)返回“” ,甚至 LEN() 实际上也不会给我一个长度。

无论如何,我通过多次执行大致相同的查询并仅使用一个 varchar(max) 构建电子邮件来解决这个问题。

长话短说

我对解决方案不满意。我如何将这些 varchar(max) 变量附加到彼此?

最佳答案

我过去遇到的一件事可能对这里有帮助,也可能没有帮助:当您连接 varchar(max) 时,SQL 似乎“忘记”了它使用的数据类型。它没有维护 MAX,而是转为传统的 varcharnitude,这意味着截断 8000 个字符左右。为了解决这个问题,我们使用以下技巧:

开始于

SET @MyMaxVarchar = @aVarcharMaxValue + @SomeString + @SomeOtherString + @etc

然后像这样修改:

SET @MyMaxVarchar = cast(@aVarcharMaxValue as varchar(max)) + @SomeString + @SomeOtherString + @etc

同样,这可能对您的特定问题没有帮助,但记住它可能会在某天为您省去大麻烦。

关于sql-server - 连接 varchar(max) 变量 SQL Server 2005,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9025273/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com