2011-02-04 124 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.' 
相關問題