将查询结果通过电子邮件发送到结果中的所有电子邮件

时间:2012-08-24 23:33:00

标签: email proc

我认为这是一个简单的问题,但几个月内无法解决,所以这里就是!!!

环境:Microsoft SQL 2008

我每晚都有一个qyery,并给我一份没有批准代码的所有订单列表:

查询:

从批准为空的订单中选择OrderId,First,Last,Email

结果:

订单ID首先发送电子邮件

4565 Tom Cruise Tom@email.com

3423 Jaime Fox jaime@email.com

多数民众议院现在我知道哪些订单没有批准,但我想要做的是查询通过电子邮件向他们发送类似

的内容

期望的结果 亲爱的汤姆,

您的订单没有批准代码,如果未输入代码,将在未来48小时内取消。

*所需结果* *

在任何给定时间我可能有30个这样的订单,所以查询需要运行并生成一个电子邮件给每个人。如果一个人有多个订单,如果他们单独收到每个订单的电子邮件,那就没问题了。请帮忙!!并通过帮助我的意思是请让我看看如何实现这个示例代码,因为我不知道如何。谢谢

1 个答案:

答案 0 :(得分:0)

您可以使用SQL Server中的电子邮件功能发送电子邮件。

配置SQL Server(follow this link);你可以简单地循环浏览每个电子邮件,如下所示:

USE msdb
GO
EXEC sp_send_dbmail @profile_name='PinalProfile',
@recipients='tomcruise@Example.com',
@subject='Your Order',
@body='Hi there.'

<强>更新

以下是如何遍历记录的示例:

declare @temp as table
(
Id int identity,
OrderId int, 
First varchar(255), 
Last varchar(255),
Email varchar(512)

)

insert into @temp
Select OrderId, First , Last ,Email from Orders where Approval is Null

declare @email varchar(512)
       , @index int=1 
       , @upper_bound int
       , @subject varchar(500)

select @upper_bound=max(Id) from @temp


while(@index<=@upper_bound)
BEGIN
select @email=email,@subject='Your order number '+OrderID from @temp where Id=@index

EXEC msdb.dbo.sp_send_dbmail @profile_name='profile',
@recipients=N@email,
@subject=@subject,
@body='Whatever you want to say here.'

select @index=@index+1

END

-- You are done