SQL邮件------数据库邮件
亲爱的各位, 我正在使用SQLServer2008 我面临着这样一种情况:我必须根据查询向单个或多个用户发送邮件。我尝试使用此stmt向多个收件人发送邮件SQL邮件------数据库邮件,sql,sql-server-2008,Sql,Sql Server 2008,亲爱的各位, 我正在使用SQLServer2008 我面临着这样一种情况:我必须根据查询向单个或多个用户发送邮件。我尝试使用此stmt向多个收件人发送邮件 EXEC msdb.dbo.sp_send_dbmail @profile_name = 'imran' , @recipients= 'imran.khan@bbraun.com;amol.puranik@bbraun.com', @subject = 'Test mail' 它成功地发送了邮件 现在我想根据查询发送邮件。对于单个员
EXEC msdb.dbo.sp_send_dbmail
@profile_name = 'imran' ,
@recipients= 'imran.khan@bbraun.com;amol.puranik@bbraun.com',
@subject = 'Test mail'
它成功地发送了邮件
现在我想根据查询发送邮件。对于单个员工,这不是问题,但如果是多个员工,我如何向多个收件人发送邮件
这就是我的问题,在这个sp中,要发送多个收件人,一个必须使用不同的地址。我如何安排收件人,以便:;介于两者之间
谢谢。使用这样的函数-
CREATE FUNCTION coltocsv
(
--your input parameters
)
RETURNS nvarchar(3000)
AS
BEGIN
-- Declare the return variable here
declare @keywords nvarchar(3000)
--Build your csv string of keywords
Select @keywords = null
SELECT @Keywords = Coalesce(@Keywords + '; ', '') +
ColumnName
from Table
where <some condition>
--- Return the result of the function
RETURN @keywords
END
不幸的是,您没有给我们提供太多的信息—您没有向我们显示选择员工的查询,您没有告诉我们员工表的外观,因此我们最多只能猜测 所以我猜:您想以某种方式选择多个员工,他们的电子邮件地址应该连接在一起,用分号分隔;,然后用于sp_send_dbmail呼叫 一种方法是:
DECLARE @recipients VARCHAR(4000)
SELECT
@recipients = STUFF((SELECT ';' + EMail
FROM dbo.Employees
WHERE (some condition here to find the right employees)
FOR XML PATH('')
), 1, 1, '')
EXEC msdb.dbo.sp_send_dbmail
@profile_name = 'imran',
@recipients,
@subject = 'Test mail'
对于收件人,您可以通过[]对多个电子邮件id进行分段
declare @ccmailid varchar(2000);
select @ccmailid = stuff((select '],['+ mailid from table_name
order by '],['+ mailid
for xml path('')),1,2,'')+']'
EXEC msdb.dbo.sp_send_dbmail
@profile_name = 'imran' ,
@recipients= @ccmailid,
@subject = 'Test mail'
这些人的实际电子邮件地址是多少?如果是,请删除或匿名。