从数据库发送电子邮件

1 sql sql-server

我试图从服务器发送电子邮件给几个收件人.

我用以下方法查询我的数据库:

SELECT Email from payrollchecksystem
Run Code Online (Sandbox Code Playgroud)

而不是使用以下内容发送电子邮件

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.'
Run Code Online (Sandbox Code Playgroud)

我的问题是,当我尝试发送从payrollchecksystem表中获得的所有电子邮件时,我不知道要为@recipients提供什么?

bit*_*ise 5

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

DECLARE @EmailList varchar(MAX)

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

SELECT  @EmailList
Run Code Online (Sandbox Code Playgroud)

然后您可以像这样使用@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.'
Run Code Online (Sandbox Code Playgroud)