sqlserver數據庫應用存儲進程和dbmail完成准時發送郵件。本站提示廣大學習愛好者:(sqlserver數據庫應用存儲進程和dbmail完成准時發送郵件)文章只能為提供參考,不一定能成為您想要的結果。以下是sqlserver數據庫應用存儲進程和dbmail完成准時發送郵件正文
上文已講過若何在數據庫中設置裝備擺設數據庫郵件發送(備注: 數據庫郵件功效是 基於SMTP完成的,起首在體系中 設置裝備擺設SMTP功效。即 在 “添加/刪除法式”面板中 “增長/刪除WINDOWS組件”,選中並雙擊 翻開"IIS"或 “運用法式”,勾選 "SMTP SERVICE"然後 一路 點“下一步”便可。普通不須要這一步,直接設置裝備擺設便可)
本文給出一個應用實例,聯合存儲進程和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\'吸收用戶地址[email protected];吸收用戶地址[email protected]\',@body=@v_body,@body_format=\'HTML\'
,@subject=@v_titile,@profile_name=\'上一節點的設置裝備擺設文件名(db_profiler)\
創立Job(SqlServer署理->功課),設置履行參數,准時履行此存儲進程,便可完成准時發送郵件後果。