我有一个存储过程,可以向少数收件人发送电子邮件。在此我想使用 @copy_recipients 发送给两个不同的收件人。但是我收到语法错误。如何使这项工作?
存储过程代码
EXEC msdb.dbo.sp_send_dbmail
@profile_name = 'mail',
@recipients = @Mail1,
@copy_recipients = @Mail2;@Mail3,
@body =@body ,
@subject =@subject
答案 0 :(得分:13)
您需要使用字符串连接在电子邮件地址之间添加;
(分号):
DECLARE @copy_to varchar(max)= @Mail2+';'+@Mail3
EXEC msdb.dbo.sp_send_dbmail
@profile_name = 'mail',
@recipients = @Mail1,
@copy_recipients = @copy_to,
@body =@body ,
@subject =@subject
您可以阅读MSDN文章here
[ @recipients =] '收件人'
是以分号分隔的电子邮件列表 发送邮件的地址。收件人列表是类型 VARCHAR(最大值)。虽然这个参数是可选的,但至少有一个 @recipients,@ copy_recipients或@blind_copy_recipients必须是 指定,或sp_send_dbmail返回错误。
[ @copy_recipients =] 'copy_recipients'
是以分号分隔的列表 将消息复制到的电子邮件地址。复制收件人 list的类型为varchar(max)。虽然此参数是可选的,但是 @recipients,@ copy_recipients或@blind_copy_recipients中的至少一个 必须指定,否则sp_send_dbmail会返回错误。