如何将电子邮件发送到从动态查询结果中获取的地址?

时间:2017-08-17 06:19:29

标签: sql sql-server

我正在尝试根据查询结果中找到的用户ID输入电子邮件地址, 该查询查找违反系统的用户并使用我们希望查询另一个表的ID来获取完整的电子邮件地址并将其作为收件人放置。

新错误"消息14624,级别16,状态1,过程sp_send_dbmail,第238行 必须至少指定以下参数之一。 " @recipients,@ copy_recipients,@ blind_copy_recipients"。 "

更新了代码。

declare @bodymsg nvarchar(max)
select @bodymsg = '<font face="calibiri" size="4" >Dear Users</font><br><br>
<font face="calibiri" size="5" color="red">Please Explain the Exrta Locked Faxes</font><br><br>
<font face="calibiri" size="4" >Check the Last Hour Snapshot Details Attached.<br><br>
Thanks</font></end>'

declare @users_fetched  varchar(max)
select @users_fetched = STUFF((SELECT ';' + Locked_Faxes_Last_Hour_Snap.userid from Locked_Faxes_Last_Hour_Snap
                        FOR XML PATH('')
                       ), 1, 1, '')



declare @recipients varchar(max)

SELECT 
@recipients = STUFF((SELECT ';' + concerned_staff.staff_email from concerned_staff where ( concerned_staff.staff_id in (@users_fetched) )
                        FOR XML PATH('')
                       ), 1, 1, '')

EXEC msdb.dbo.sp_send_dbmail


@recipients = @recipients ,

@body= @bodymsg ,
@subject = 'Alert !!! Locked Faxes Violation Last Hour Snaps' ,
@profile_name = 'Database Profile 1',
@query = 'use qtel select * from dbo.Locked_Faxes_Last_Hour_Snap' ,
@attach_query_result_as_file = 1,
@query_attachment_filename ='Locked_Faxes_Last_Hour_Snap.csv',
@query_result_separator =',',
@query_result_no_padding=1,
@exclude_query_output=1,
@append_query_error=0,
@query_result_header =1,
@body_format ='HTML',
@importance= 'HIGH';

1 个答案:

答案 0 :(得分:0)

在这种情况下,您可以执行以下操作之一:

  • 将查询放入存储过程并传递参数。
  • 使用表达式构造SQL。
  • 创建基于表达式的变量,并使用该变量作为查询的来源。