我在sql中有一个select查询。
我想向所有电子邮件地址发送电子邮件,如果查询给5个用户发送给5个用户或者给85个用户发送给85个用户。我有msdb.dbo.sp_send_dbmail,但我不知道如何到达所有行并向他们发送电子邮件。
在SQL Server中创建分隔列表的最常见方法是可怕的奥术STUFF subquery FOR XML PATH
方法。假设名为Contacts
的表在名为email
的字段中保存电子邮件地址:
DECLARE @Recipients nvarchar(max);
SELECT @Recipients = STUFF((SELECT ';' + email FROM Contacts FOR XML PATH, TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, '')
@Recipients
变量应该以分号分隔的电子邮件地址列表结束,appears to be what msdb.dbo.sp_send_dbmail
wants,但您可能需要使用逗号代替。