SQL server 表數(shù)據(jù)改變觸發(fā)發(fā)送郵件的方法
今天遇到一個(gè)問(wèn)題,原有生產(chǎn)系統(tǒng)正在健康運(yùn)行,現(xiàn)需要監(jiān)控一張數(shù)據(jù)表,當(dāng)增加數(shù)據(jù)的時(shí)候,給管理員發(fā)送郵件。
領(lǐng)到這個(gè)需求后,有同事提供方案:寫觸發(fā)器觸發(fā)外部應(yīng)用程序。這是個(gè)大膽的想法啊,從來(lái)沒(méi)寫過(guò)這樣的觸發(fā)器。
以下是參考文章:
第一種方法: 觸發(fā)器調(diào)用外部程序。 xp_cmdshell
http://www.dbjr.com.cn/article/90714.htm 第一篇提供的方法是需要開啟xp_cmdshell
先開啟xp_cmdshell
打開外圍應(yīng)用配置器—>
功能的外圍應(yīng)用配置器—>
實(shí)例名\Database Engine\xp_cmdshell—>
啟用
然后可以調(diào)用外部程序:Exec xp_cmdshell 'c:\calc.exe' 。
第二種方法:將插入的值傳給.bat 。同樣使用調(diào)用外部程序的 xp_cmdshell 的權(quán)限
其實(shí)第二種方法可以歸為第一種。
下面說(shuō)說(shuō)第三種方法:
SQL servere CLR
這種方法可以利用VS給sql server 寫存儲(chǔ)過(guò)程和觸發(fā)器。打開了VS不愁寫代碼給管理員發(fā)email。
第四種方法:
SQL server Management -->Database Mail
開啟Database Mail 之后,配制好發(fā)郵件的設(shè)置,直接寫觸發(fā)器就可以把插入的內(nèi)容通過(guò)sql server 發(fā)送出來(lái)了。
Create TRIGGER tri_email ON [dbo].[ImageGalleries] AFTER insert AS BEGIN if exists(select * from inserted) begin declare @content nvarchar(max) select @content=i.Name+'|'+i.ImagePath from inserted i; exec msdb.dbo.sp_send_dbmail @profile_name='SQLProfile', @recipients=243594541@qq.com', @subject='sql server send email by trigger', @body=@content end END GO
這種方法是最直接最簡(jiǎn)便的方法。
- 使用Python發(fā)送郵件附件以定時(shí)備份MySQL的教程
- Python讀取ini文件、操作mysql、發(fā)送郵件實(shí)例
- sqlserver數(shù)據(jù)庫(kù)使用存儲(chǔ)過(guò)程和dbmail實(shí)現(xiàn)定時(shí)發(fā)送郵件
- 使用sqlserver存儲(chǔ)過(guò)程sp_send_dbmail發(fā)送郵件配置方法(圖文)
- sqlserver2008自動(dòng)發(fā)送郵件
- 通過(guò)sql存儲(chǔ)過(guò)程發(fā)送郵件的方法
- SQL Server 使用觸發(fā)器(trigger)發(fā)送電子郵件步驟詳解
相關(guān)文章
Sql Server的一些知識(shí)點(diǎn)定義總結(jié)
這篇文章主要給大家總結(jié)介紹了關(guān)于Sql Server的一些知識(shí)點(diǎn)定義文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2018-12-12sqlserver數(shù)據(jù)庫(kù)使用存儲(chǔ)過(guò)程和dbmail實(shí)現(xiàn)定時(shí)發(fā)送郵件
這篇文章主要介紹了sqlserver數(shù)據(jù)庫(kù)存儲(chǔ)過(guò)程和Job實(shí)現(xiàn)定時(shí)從數(shù)據(jù)庫(kù)發(fā)送郵件的功能,大家參考使用吧2014-01-01淺談數(shù)據(jù)庫(kù)日期類型字段設(shè)計(jì)應(yīng)該如何選擇
本文主要介紹了數(shù)據(jù)庫(kù)日期類型字段設(shè)計(jì)應(yīng)該如何選擇,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-08-08DBCC CHECKIDENT 重置數(shù)據(jù)庫(kù)標(biāo)識(shí)列從某一數(shù)值開始
DBCC CHECKIDENT 重置數(shù)據(jù)庫(kù)標(biāo)識(shí)列從某一數(shù)值開始2009-10-10sql 語(yǔ)句插入結(jié)果為select和值混合示例
這篇文章主要介紹了sql語(yǔ)句插入結(jié)果為select和值混合,需要的朋友可以參考下2014-05-05省市縣三級(jí)聯(lián)動(dòng)的SQL語(yǔ)句
這篇文章主要介紹了省市縣三級(jí)聯(lián)動(dòng)的SQL語(yǔ)句,包括建表及插入數(shù)據(jù),需要的朋友可以參考下2014-04-04SQLServer日志清空語(yǔ)句(sql2000,sql2005,sql2008)
時(shí)候當(dāng)系統(tǒng)運(yùn)行時(shí)間比較長(zhǎng)的時(shí)候,我們把備份的數(shù)據(jù)庫(kù)還原的時(shí)候發(fā)現(xiàn),數(shù)據(jù)庫(kù)中數(shù)據(jù)文件和日志文件變的好大,特別是日志文件。現(xiàn)在給大家介紹如何清理SQLServer數(shù)據(jù)庫(kù)日志2013-05-05sql server編寫通用腳本實(shí)現(xiàn)獲取一年前日期的方法
這篇文章主要介紹了sql server編寫通用腳本實(shí)現(xiàn)獲取一年前日期,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-07-07