SQL server 表数据改变触发发送邮件的方法


今天遇到一个问题,原有生产系统正在健康运行,现需要监控一张数据表,当增加数据的时候,给管理员发送邮件。

领到这个需求后,有同事提供方案:写触发器触发外部应用程序。这是个大胆的想法啊,从来没写过这样的触发器。

以下是参考文章:

第一种方法: 触发器调用外部程序。 xp_cmdshell

http://www.phpstudy.net/article/90714.htm 第一篇提供的方法是需要开启xp_cmdshell

先开启xp_cmdshell

打开外围应用配置器—>

功能的外围应用配置器—>

实例名\Database Engine\xp_cmdshell—>

启用

然后可以调用外部程序:Exec xp_cmdshell 'c:\calc.exe' 。

第二种方法:将插入的值传给.bat 。同样使用调用外部程序的 xp_cmdshell 的权限

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

其实第二种方法可以归为第一种。

下面说说第三种方法:

SQL servere CLR

这种方法可以利用VS给sql server 写存储过程和触发器。打开了VS不愁写代码给管理员发email。

第四种方法:

SQL server Management -->Database Mail

开启Database Mail 之后,配制好发邮件的设置,直接写触发器就可以把插入的内容通过sql server 发送出来了。

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 

这种方法是最直接最简便的方法。



相关阅读:
JS实现可关闭的对联广告效果代码
Android下的EXIF是什么
根据sql脚本修改数据库表结构的几种解决方案
c#编写的高并发数据库控制访问代码
解析PHP中的file_get_contents获取远程页面乱码的问题
从wamp到xampp的升级之路
如何打开MAC单应用模式将其他的应用窗口最小化
php blowfish加密解密算法
C#中使用XmlDocument类来创建和修改XML格式的数据文件
理解javascript闭包
Mysql DNS反向解析导致连接超时过程分析(skip-name-resolve)
JSP导出Excel文件的方法
Android中ViewPager实现滑动指示条及与Fragment的配合
window.onload与$(document).ready()的区别分析
快速导航
PHP MySQL HTML CSS JavaScript MSSQL AJAX .NET JSP Linux Mac ASP 服务器 CMS SQL jQuery C# C++ java Android IOS oracle MongoDB PostgreSQL SQLite 交通频道 林芝-宁海 德清-三明 崇明-宁德 招远-晋江 新郑-海门 楚雄-娄底 钦州-葫芦岛 宁乡-日照 柳州-奉化 广安-东台 德清-阜新 铜仁-洛阳 枣庄-上海 晋江-深圳 赤峰-珠海 舟山-浏阳 铜仁-广元 宁乡-增城 乐清-海南 金昌-海门 锡林浩特-厦门 福州-安康 和田-宜春 无锡-亳州 双鸭山-嵊州 淄博-阜新 洛阳-毕节 丹东-铜仁 嘉兴-新郑 鹰潭-台州 荆州-扬中 吴忠-南昌 垦利-宜兴 大石桥-白城 果洛-长沙 聊城-台州 太仓-梧州 温州-辽阳 南阳-义马 和田-岳阳 怀化-岱山 泰州-辽源 眉山-玉林 贵港-海西 温岭-厦门 长沙-青岛 桓台-仙桃 玉林-内江 江阴-贵港 长春-朔州 邹平-库尔勒 丹阳-三门峡 牡丹江-诸暨 淄博-昌吉 天津-海城 福清-昌吉 东阳-遵义 乐山-北海 邢台-三门峡 贵港-舟山 荣成-邹平 哈尔滨-丹东 南平-萍乡 遵化-长治 铜陵-郴州 温州-遂宁 葫芦岛-广饶 宁海-启东 韶关-昌都 三明-酒泉 辽源-唐山 濮阳-新郑 贵阳-吐鲁番 聊城-都江堰 通辽-长兴 运城-宿迁 克拉玛依-海东 肥城-凉山 义马-平顶山 衡水-四平 农安-大石桥 凯里-桐木寨 襄阳-邵东 锦州南-唐山北 江华-玉林 马兰-咸阳 襄阳-固始 天水-洛阳 福利屯-太平镇 蚌埠南-福州南 无锡东-烟台南 留庄-磨滩 兰考-砀山 清河城-南平南 宣城-甘谷 灵宝西-宜兴 武汉-德清 东光-蛟河 新安县-月山 延吉-沟帮子 永修-金华 平庄南-天义 道仑郭勒-贺日斯台 芦台-莱西 大庆-姜家 成都-惠州 长春-海口 泰和-张家口南 辽阳-苇河 西安-达拉特西 商丘-汝州 丰镇-北京西 宝鸡南-祁县东 咸宁北-涿州东 江山-昆山南 南通-石柱县 义乌-静海 大营镇-绩溪县 榆树屯-南岔 安庆-临清 南朗-容桂 达拉特西-南充 娄底-新化 衡阳-盘锦 衡阳东-金华 冕山-铁口 安顺-滥坝 兰考-五莲 西平-浠水 定州-南召 定州-綦江 鹿寨北-信阳东 绥阳-哈尔滨东 七苏木-达日其嘎 兴义-惠州 巩义-曹县 广州-滦县 长沙-兴平 漳州东-南昌 沟帮子-金昌 大营镇-衡水 林口-帽儿山 海拉尔-镇赉 江油-蔡家坡 汐子-白音他拉 襄阳东-绵阳 江门-南头 老城镇-福山镇 哈尔滨东-舒兰 合肥南-无锡东 大竹园-高滩 陆川-桐梓 上板城南-石家庄 丹东-沧州西 黎塘-南京 安陆-江油 北安-兴城 盘锦-深圳 天镇-南口 福州-长沙南

Copyright © 2016 phpStudy |