sqlserver數(shù)據庫使用存儲過程和dbmail實現(xiàn)定時發(fā)送郵件
來源:易賢網 閱讀:2402 次 日期:2014-05-12 15:29:26
溫馨提示:易賢網小編為您整理了“sqlserver數(shù)據庫使用存儲過程和dbmail實現(xiàn)定時發(fā)送郵件”,方便廣大網友查閱!

本文給出一個使用實例,結合存儲過程和Job來實現(xiàn)定時從數(shù)據庫發(fā)送郵件:

1、創(chuàng)建存儲過程,在新建的存儲過程中調用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--期數(shù)

,@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--期數(shù)

,@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>期數(shù)</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=\'上一節(jié)點的配置文件名(db_profiler)\

創(chuàng)建Job(SqlServer代理->作業(yè)),設置執(zhí)行參數(shù),定時執(zhí)行此存儲過程,即可實現(xiàn)定時發(fā)送郵件效果。

更多信息請查看IT技術專欄

更多信息請查看數(shù)據庫
關于我們 | 聯(lián)系我們 | 人才招聘 | 網站聲明 | 網站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 新媒體/短視頻平臺 | 手機站點

版權所有:易賢網