我有一个SSIS包,它循环遍历许多人,然后将一组链接附加到报告作为附件。
这一切都适用于发送邮件任务,直到达到4,000个字符限制:(
所以我试图使用sp_send_mail
让它与Execute SQL任务一起工作我首先尝试的是简单但我无法使其工作
Paramater:User :: strPersonName 方向:输入 数据类型:VarChar 大小:-1
SQL Statement =
DECLARE @bodytext AS VARCHAR(200)
SET @bodytext = 'Good Morning' + ?
EXEC msdb.dbo.sp_send_dbmail
@profile_name = 'Shoop',
@recipients = 'moonbase@hatstand.com',
@subject = '1',
@body = @bodytext
我得到的结果集未正确设置通用错误
有什么想法吗? :(
答案 0 :(得分:0)
您可以使用SSIS中的发送邮件任务,而不是使用sp_send_mail。我相信你在填充你的消息时所说的4000个字符限制是在表达式上,而不是在变量本身上。如果在发送邮件任务中使用MessageSourceType变量,则可以使用脚本任务构建邮件正文(允许您创建大于4000个字符的字符串)。
编辑:由于问题出在您的附件上,我发现有一件事可能是您的执行SQL任务的SQL问题,根据http://technet.microsoft.com/en-us/library/ms140355.aspx,您应该使用“?”作为ADO连接的参数标记和ADO.NET的“@”,但似乎你正在使用它们。
作为另一种选择,这里有一篇关于如何使用脚本任务和.NET发送电子邮件的博客。 http://www.mssqltips.com/sqlservertip/1753/sending-html-formatted-email-in-sql-server-using-the-ssis-script-task/
答案 1 :(得分:0)
您不需要结果集,但如果确实在SQL任务的“常规”选项卡中确保设置正确。根据我的理解,你只是传递参数数据而不返回任何东西,所以我认为你把它设置为单行而不是无。