0

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

环境:微软 SQL 2008

我有一个每天晚上运行的 qyery,并为我提供了所有没有批准代码的订单的列表:

询问 :

从 Approval 为 Null 的订单中选择 OrderId、First、Last、Email

结果:

OrderID 前 后 电子邮件

第4565章

第3423章

很好,因为现在我知道哪些订单没有获得批准,但我想做的是让查询自动通过电子邮件向他们发送类似

期望的结果 亲爱的汤姆,

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

* 期望的结果* *

在任何给定时间,我都可能订购了 30 个这样的查询,因此查询只需要运行并生成一封电子邮件给每个人。如果一个人有多个订单,如果他们分别收到每个订单的电子邮件,那很好。请帮忙!!并且通过帮助我的意思是请让我看看如何实现这一目标的示例代码,因为我不知道如何。谢谢你

4

1 回答 1

0

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

配置 SQL Server 后(点击此链接);您可以简单地循环浏览每封电子邮件,如下所示:

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
于 2012-08-24T23:59:46.113 回答