我有一个订单表,其中经常填充新订单
订单表:
OrderID OrderName EmailAddress Status
-----------------------------------------------------
1 iphone test@gmail.co.uk New
2 samsung nw@gmail.com New
3 nexus f@gmail.com Approved
对于每个有status = 'New'
的订单行,我想设置一个每30分钟运行一次的作业,向这些收件人发送电子邮件。
答案 0 :(得分:0)
根据我的理解,如果订单状态为“新”,您需要安排发送电子邮件通知的工作。
如果是,请创建以下存储过程
CREATE PROCEDURE NewOrders_Job
AS
BEGIN
DECLARE @OrderName varchar(200), @EmailAddress varchar(200)
SELECT
@OrderName = ' You have a sale for '+[OrderName]+', at +'CONVERT(VARCHAR(10),GETDATE(),)'+'
,@EmailAddress = [EmailAddress]
FROM [Orders table]
WHERE
[Status] = 'New'
IF(ISNULL(@EmailAddress,'')<>'')
BEGIN
--mail
DECLARE
@profile_name VARCHAR(200)
,@recipients VARCHAR(MAX)
,@copy_recipients VARCHAR(MAX)
,@blind_copy_recipients VARCHAR(MAX)
,@body VARCHAR(MAX)
,@body_format VARCHAR(MAX)
,@subject VARCHAR(MAX)
EXEC msdb.dbo.sp_send_dbmail
@profile_name = 'Your_Profile_Name'
,@recipients = @EmailAddress
,@copy_recipients = 'youremail@domain.com'
,@blind_copy_recipients = 'admin@yourdomain.com'
,@body = @OrderName
,@body_format = 'HTML'
,@subject = 'You have a new sales Order';
END
END
现在,创建一个新的作业,使用上述存储过程运行30分钟