我认为这是一个简单的问题,但几个月内无法解决,所以这里就是!!!
环境:Microsoft SQL 2008
我每晚都有一个qyery,并给我一份没有批准代码的所有订单列表:
查询:
从批准为空的订单中选择OrderId,First,Last,Email
结果:
4565 Tom Cruise Tom@email.com
3423 Jaime Fox jaime@email.com
多数民众议院现在我知道哪些订单没有批准,但我想要做的是查询通过电子邮件向他们发送类似
的内容期望的结果 亲爱的汤姆,
您的订单没有批准代码,如果未输入代码,将在未来48小时内取消。
*所需结果* *
在任何给定时间我可能有30个这样的订单,所以查询需要运行并生成一个电子邮件给每个人。如果一个人有多个订单,如果他们单独收到每个订单的电子邮件,那就没问题了。请帮忙!!并通过帮助我的意思是请让我看看如何实现这个示例代码,因为我不知道如何。谢谢
答案 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