sqlserver數(shù)據(jù)庫(kù)使用存儲(chǔ)過(guò)程和dbmail實(shí)現(xiàn)定時(shí)發(fā)送郵件
上文已講過(guò)如何在數(shù)據(jù)庫(kù)中配置數(shù)據(jù)庫(kù)郵件發(fā)送(備注: 數(shù)據(jù)庫(kù)郵件功能是 基于SMTP實(shí)現(xiàn)的,首先在系統(tǒng)中 配置SMTP功能。即 在 “添加/刪除程序”面板中 “增加/刪除WINDOWS組件”,選中并雙擊 打開(kāi)"IIS"或 “應(yīng)用程序”,勾選 "SMTP SERVICE"然后 一路 點(diǎn)“下一步”即可。一般不需要這一步,直接配置即可)
本文給出一個(gè)使用實(shí)例,結(jié)合存儲(chǔ)過(guò)程和Job來(lái)實(shí)現(xiàn)定時(shí)從數(shù)據(jù)庫(kù)發(fā)送郵件:
1、創(chuàng)建存儲(chǔ)過(guò)程,在新建的存儲(chǔ)過(guò)程中調(diào)用sp_send_dbmail存儲(chǔ)過(guò)程(注:代碼中的\'只是添加代碼時(shí)自動(dòng)添加的轉(zhuǎn)義字符,實(shí)質(zhì)代碼中只有單引號(hào))
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=\'測(cè)試郵件內(nèi)容標(biāo)題;
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--標(biāo)ID
,@v_installments--期數(shù)
,@v_remark--錯(cuò)誤描述
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--標(biāo)ID
,@v_installments--期數(shù)
,@v_remark--錯(cuò)誤描述
end;
CLOSEcursor_repayment;--關(guān)閉游標(biāo)
DEALLOCATEcursor_repayment;--清空游標(biāo)
ifLEN(@v_content)>0
begin
SET@v_body=\'<html><H1>自動(dòng)還款所有異常列表</H1><bodybgcolor=white><tableborder=1><tr><th>標(biāo)ID</th><th>期數(shù)</th><th>錯(cuò)誤描述</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é)點(diǎn)的配置文件名(db_profiler)\
創(chuàng)建Job(SqlServer代理->作業(yè)),設(shè)置執(zhí)行參數(shù),定時(shí)執(zhí)行此存儲(chǔ)過(guò)程,即可實(shí)現(xiàn)定時(shí)發(fā)送郵件效果。
相關(guān)文章
SQL中l(wèi)imit的用法小結(jié)(一個(gè)參數(shù),兩個(gè)參數(shù))分頁(yè)查詢
Limit通常用于SELECT語(yǔ)句的末尾,用于限制查詢結(jié)果的數(shù)量,這篇文章主要介紹了SQL中l(wèi)imit的用法(一個(gè)參數(shù),兩個(gè)參數(shù)),分頁(yè)查詢,需要的朋友可以參考下2023-12-12SQL Server使用游標(biāo)處理Tempdb究極競(jìng)爭(zhēng)-DBA問(wèn)題-程序員必知
這篇文章主要介紹了SQL Server使用游標(biāo)處理Tempdb究極競(jìng)爭(zhēng)-DBA問(wèn)題-程序員必知的相關(guān)資料,需要的朋友可以參考下2015-11-11SQL?Server導(dǎo)入Excel數(shù)據(jù)的簡(jiǎn)單圖文教程
這篇文章主要介紹了SQL?Server導(dǎo)入Excel數(shù)據(jù)的相關(guān)資料,包括如何將數(shù)據(jù)從Excel導(dǎo)入到指定數(shù)據(jù)庫(kù),包括選擇數(shù)據(jù)源、配置OLEDBProvider、編輯目標(biāo)字段映射等關(guān)鍵步驟,以及最終執(zhí)行導(dǎo)入操作的流程,需要的朋友可以參考下2024-11-11SQL?Server設(shè)置多個(gè)端口號(hào)的操作步驟
SQL?Server使用的默認(rèn)端口號(hào)是TCP端口1433,這是為了連接到?Microsoft?SQL?Server?實(shí)例的標(biāo)準(zhǔn)網(wǎng)絡(luò)端口,如果你正在設(shè)置?SQL?Server?或者嘗試從其他應(yīng)用程序連接到它,所以本文給大家介紹了SQL?Server如何設(shè)置多個(gè)端口號(hào),需要的朋友可以參考下2024-07-07SQL Server數(shù)據(jù)誤刪的恢復(fù)和備份流程
在日常的數(shù)據(jù)庫(kù)管理中,數(shù)據(jù)的誤刪操作是難以避免的,為了確保數(shù)據(jù)的安全性和完整性,我們必須采取一些措施來(lái)進(jìn)行數(shù)據(jù)的備份和恢復(fù),本文將詳細(xì)介紹如何在 SQL Server 中進(jìn)行數(shù)據(jù)的備份和恢復(fù)操作,特別是在發(fā)生數(shù)據(jù)誤刪的情況下,需要的朋友可以參考下2024-07-07sqlserver isnull在數(shù)據(jù)庫(kù)查詢中的應(yīng)用
isnull在數(shù)據(jù)庫(kù)查詢中的應(yīng)用,特別是再語(yǔ)句連接的時(shí)候需要用到2011-11-11SQL server服務(wù)顯示遠(yuǎn)程過(guò)程調(diào)用失敗的解決方法
這篇文章主要為大家介紹了SQL server服務(wù)顯示遠(yuǎn)程過(guò)程調(diào)用失敗的解決方法,還為大家提供了解決SQL SERVER 2008 R2配置管理器出現(xiàn)“遠(yuǎn)程過(guò)程調(diào)用失敗”(0x800706be)錯(cuò)誤提示的方案,感興趣的小伙伴們可以參考一下2016-05-05SQLSERVER記錄登錄用戶的登錄時(shí)間(自寫(xiě)腳本)
下面是本人寫(xiě)的一個(gè)腳本,我的實(shí)現(xiàn)原理是使用觸發(fā)器,觸發(fā)器是登錄觸發(fā)器,范圍是整個(gè)服務(wù)器范圍,如果有人登錄過(guò),就使用 bcp命令把登錄信息記錄日志文件,感興趣的朋友可以了解下,或許本文的知識(shí)點(diǎn)對(duì)你有所幫助2013-02-02SQLSERVER 本地查詢更新操作遠(yuǎn)程數(shù)據(jù)庫(kù)的代碼
SQLSERVER 本地查詢更新操作遠(yuǎn)程數(shù)據(jù)庫(kù)的代碼,需要的朋友可以參考下2012-11-11SQLSERVER2022創(chuàng)建用戶的圖文教程
用戶是數(shù)據(jù)庫(kù)中的實(shí)體,用于控制對(duì)數(shù)據(jù)庫(kù)對(duì)象的訪問(wèn)權(quán)限,本文主要介紹了SQLSERVER2022創(chuàng)建用戶的圖文教程,具有一定的參考價(jià)值,感興趣的可以了解一下2024-04-04