我试图从服务器发送电子邮件给几个收件人.
我用以下方法查询我的数据库:
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提供什么?
要将您的电子邮件分成分号分隔的字符串,请使用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)