sqlserver数据库使用存储过程和dbmail实现定时发送邮件
来源:易贤网 阅读:1527 次 日期:2014-05-12 15:29:26
温馨提示:易贤网小编为您整理了“sqlserver数据库使用存储过程和dbmail实现定时发送邮件”,方便广大网友查阅!

本文给出一个使用实例,结合存储过程和Job来实现定时从数据库发送邮件:

1、创建存储过程,在新建的存储过程中调用sp_send_dbmail存储过程(注:代码中的\'只是添加代码时自动添加的转义字符,实质代码中只有单引号)

代码如下:

Create PROCEDURE [dbo].[sp_send_error_alert]

AS

declare

@v_contentnvarchar(max),

@v_mail_tonvarchar(500),

@v_bodynvarchar(max),

@v_titilenvarchar(100)

,@v_br_idnvarchar(50)

,@v_installmentsnvarchar(10)

,@v_remarknvarchar(100)

BEGIN

SETNOCOUNTON;

set@v_titile=\'测试邮件内容标题;

set@v_content=\'\';

DECLAREcursor_repaymentCURSORFOR

SELECT

br_id

,installments

,remark

fromdw_account_repaymentt

where

status!=1

andis_del=0

orderbyt.add_datetimedesc;

OPENcursor_repayment

FETCHNEXTFROMcursor_repaymentINTO

@v_br_id--标ID

,@v_installments--期数

,@v_remark--错误描述

WHILE@@FETCH_STATUS=0

BEGIN

set@v_content=@v_content+\'<tr><td>\'+@v_br_id+\'</td>\'+\'<td>\'+@v_installments+\'</td>\'+\'<td>\'+@v_remark+\'</td></tr>\';

fetchnextfromcursor_repaymentinto

@v_br_id--标ID

,@v_installments--期数

,@v_remark--错误描述

end;

CLOSEcursor_repayment;--关闭游标

DEALLOCATEcursor_repayment;--清空游标

ifLEN(@v_content)>0

begin

SET@v_body=\'<html><H1>自动还款所有异常列表</H1><bodybgcolor=white><tableborder=1><tr><th>标ID</th><th>期数</th><th>错误描述</th></tr>\'

SET@v_body=@v_body+@v_content+\'</table></body></html>\'

EXECmsdb.dbo.sp_send_dbmail

@recipients=N\'接收用户地址1@qq.com;接收用户地址2@qq.com\',@body=@v_body,@body_format=\'HTML\'

,@subject=@v_titile,@profile_name=\'上一节点的配置文件名(db_profiler)\

创建Job(SqlServer代理->作业),设置执行参数,定时执行此存储过程,即可实现定时发送邮件效果。

更多信息请查看IT技术专栏

更多信息请查看数据库
由于各方面情况的不断调整与变化,易贤网提供的所有考试信息和咨询回复仅供参考,敬请考生以权威部门公布的正式信息和咨询为准!
关于我们 | 联系我们 | 人才招聘 | 网站声明 | 网站帮助 | 非正式的简要咨询 | 简要咨询须知 | 加入群交流 | 手机站点 | 投诉建议
工业和信息化部备案号:滇ICP备2023014141号-1 云南省教育厅备案号:云教ICP备0901021 滇公网安备53010202001879号 人力资源服务许可证:(云)人服证字(2023)第0102001523号
云南网警备案专用图标
联系电话:0871-65317125(9:00—18:00) 获取招聘考试信息及咨询关注公众号:hfpxwx
咨询QQ:526150442(9:00—18:00)版权所有:易贤网
云南网警报警专用图标