2011-02-04 99 views
1

我试图从一个服务器发送电子邮件给几个收件人。发送电子邮件从数据库

我做我的查询使用数据库:

SELECT Email from payrollchecksystem 

而不是使用以下方法来发送电子邮件

USE msdb 
GO 
EXEC sp_send_dbmail @profile_name='SQL Server Alerts System', 
@recipients = I DONT KNOW WHAT TO PUT HERE 
@subject='Test message', 
@body='This is the body of the test message. 
Congrates Database Mail Received By you Successfully.' 

我的问题是,我不知道想什么时候把什么@recipients发送我从payrollchecksystem表中获得的所有电子邮件?

回答

2

http://msdn.microsoft.com/en-us/library/ms190307.aspx

@recipients 是 电子邮件地址的分号分隔的列表将消息发送给

+0

但是如果我试图发送一封电子邮件给100个收件人怎么办?我确实使用收件人列表创建了一个.csv文件。在这种情况下,我应该如何处理@recipients? – hhhh 2011-02-04 04:44:39

5

要你的电子邮件分成分隔分号字符串,请使用COALESCE

DECLARE @EmailList varchar(MAX) 

SELECT @EmailList = COALESCE(@EmailList + ';', '') + Email 
FROM payrollchecksystem 
WHERE Email IS NOT NULL 

SELECT @EmailList 

然后,你可以使用@EmailList像这样:

USE msdb 
GO 
EXEC sp_send_dbmail @profile_name='SQL Server Alerts System', 
    @recipients = @EmailList 
    @subject='Test message', 
    @body='This is the body of the test message. Congrates Database Mail Received By you Successfully.' 
相关问题