我在sql中有一个select查询。
我想向所有电子邮件地址发送电子邮件,如果查询给5个用户发送给5个用户或者给85个用户发送给85个用户。 我有msdb.dbo.sp_send_dbmail,但我不知道如何到达所有行并向他们发送电子邮件。
答案 0 :(得分:0)
在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结尾,但您可能需要使用逗号。