【发布时间】:2016-01-06 14:29:23
【问题描述】:
我有一个名为 EMails 的 SQL Server 表,它由列组成
- Id int,
- 主题 nvarchar(100)
- 正文 nvarchar(MAX),
- 收件人 nvarchar(100)
- IsSent 位
我的应用程序填充它。
我想使用 SQL Server 发送电子邮件。
我知道如何发送电子邮件
EXEC msdb.dbo.sp_send_dbmail
但是查询
SELECT Subject,Body,Recipient FROM EMails
WHERE IsSent=0
最多可以返回多个
我还想在邮件发送后将IsSent 设置为1。
问题:
是否可以使用计划的 SQL Server 作业。如果可以,能否提供代码示例?
当查询放入每 15 分钟运行一次的 sql server 作业时,是否建议最多发送 50 封电子邮件
【问题讨论】:
-
这是极少数情况下光标是最佳选择的情况之一。您只需要遍历每一行并发送您的电子邮件。 sql server 作业并不比 windows 中的计划任务更复杂。您通过一个步骤来设置作业以执行您的过程并给它一个时间表。您可以根据需要尽可能频繁地运行它。
标签: sql-server sql-server-2012