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
https://www.jb51.net/article/90714.htm 第一篇提供的方法是需要開(kāi)啟xp_cmdshell
先開(kāi)啟xp_cmdshell
打開(kāi)外圍應(yīng)用配置器—>
功能的外圍應(yīng)用配置器—>
實(shí)例名\Database Engine\xp_cmdshell—>
啟用
然后可以調(diào)用外部程序:Exec xp_cmdshell 'c:\calc.exe' 。
第二種方法:將插入的值傳給.bat 。同樣使用調(diào)用外部程序的 xp_cmdshell 的權(quán)限
http://www.sqlparty.com/%E9%A2%98%E7%82%BC/2013/08/05/e5-a6-82-e4-bd-95-e5-9c-a8-e6-9f-90-e8-a1-a8-e6-96-b0-e6-8f-92-e5-85-a5-e6-95-b0-e6-8d-ae-e6-97-b6-e8-a7-a6-e5-8f-91-e6-89-a7-e8-a1-8c-e5-a4-96-e9-83-a8-e7-a8-8b-e5-ba-8f-ef-bc-9f.html
其實(shí)第二種方法可以歸為第一種。
下面說(shuō)說(shuō)第三種方法:
SQL servere CLR
這種方法可以利用VS給sql server 寫存儲(chǔ)過(guò)程和觸發(fā)器。打開(kāi)了VS不愁寫代碼給管理員發(fā)email。
第四種方法:
SQL server Management -->Database Mail
開(kāi)啟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)便的方法。
版權(quán)聲明:本站文章來(lái)源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請(qǐng)保持原文完整并注明來(lái)源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非www.sddonglingsh.com所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來(lái)源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來(lái),僅供學(xué)習(xí)參考,不代表本站立場(chǎng),如有內(nèi)容涉嫌侵權(quán),請(qǐng)聯(lián)系alex-e#qq.com處理。