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

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

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

以下是参考文章:

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

http://www.jb51.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

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

时间: 2024-10-13 22:53:19

SQL server 表数据改变触发发送邮件的方法的相关文章

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

今天遇到一个问题,原有生产系统正在健康运行,现需要监控一张数据表,当增加数据的时候,给管理员发送邮件. 领到这个需求后,有同事提供方案:写触发器触发外部应用程序.这是个大胆的想法啊,从来没写过这样的触发器. 以下是参考文章: 第一种方法: 触发器调用外部程序. xp_cmdshell http://www.jb51.net/article/90714.htm 第一篇提供的方法是需要开启xp_cmdshell 先开启xp_cmdshell 打开外围应用配置器-> 功能的外围应用配置器-> 实例名

收集并存储性能监控器数据到SQL Server表

server|监控|数据|性能 收集并存储性能监控器数据到SQL Server表 ? ? 当我们需要监控数据库SQL Server服务器性能的时候,有些数据库管理人员可能会选择Windows为我们提供的'性能'监控器来操作(开始菜单à管理工具à性能). 如果可以将性能监控器采集到的数据记录到SQL Server 的数据库表中去,很多工作对我们来说也许方便得多.开启性能监控器点击开始菜单à运行à执行(perfmon) 或者 开始菜单à管理工具à性能 ? 就可以看到下面的画面了 ?定义性能监控器LO

如何批量复制Sql Server表和EXCEL数据

一.SqlServer表数据复制到excel(方法) 1.新建查询,用sql语句把表数据读出来 2.然后,选择数据,右键,复制(也可以点击连同标题复制) 3.在excel中粘贴就可以了. 二.excel复制到SqlServer表数据(方法) 1.打开excel复制数据. 2.用编辑状态打开sql表 3.右键点击表最下面一行左侧的序号,选择粘贴(注意,excel的列一定要和sql表的列对应) 4.如果有自增,不要复制自增字段. 更多精彩内容:http://www.bianceng.cnhttp:/

SQL Server 2005 数据维护实务

1.关于SQL Server 2005数据维护计划 为了使SQL Server数据库的性能保持在最佳的状态,数据库管理员应该对每一个数据库进行定期的常规维护.这些常规任务包括重建数据库索引.检查数据库完整性,更新索引统计信息,数据库内部一致性检查和备份等.这些常规的数据库维护任务需要经常重复,而且繁琐耗时,所以往往被管理员忽略.而且,现在的数据库管理员一天到晚都被很多其他的任务压得喘不过气来,根本没有时间去进行日常维护工作.认识到这些问题的存在,SQL Server通过制定维护计划,提供了一个可

《SQL Server企业级平台管理实践》读书笔记——SQL Server中数据文件空间使用与管理

原文:<SQL Server企业级平台管理实践>读书笔记--SQL Server中数据文件空间使用与管理 1.表和索引存储结构 在SQL Server2005以前,一个表格是以一个B树或者一个堆(heap)存放的.每个B树或者堆,在sysindexes里面都有一条记录相对应.SQL Server2005以后,引入了分区表的概念(Table Partition),在存储组织上,现有的分区基本上替代了原来表格的概念,原先表的概念成为了一个逻辑概念.一个分区就是一个B树或者一个堆.而一张表格则是一个

RDA实现SQL CE与SQL Server间数据存取

本文介绍如何利用 RDA(RemoteDataAccess远程数据存取)实现掌上电脑Pocket PC(简称PPC)上的SQL Server CE 2.0与桌面SQL Server 2000数据库间的数据存取.我们将采用Visual Basic .Net 2003进行智能设备端的程序开发. 一. 概述 PPC程序与桌面PC进行通信的编程方式目前有两种,1.利用Socket编程与桌面程序进行通信:2.利用RDA和Replication(复制)进行数据库编程来完成与桌面SQL Server数据库的存

SQL Server 2005和SQL Server 2000数据的相互导入

  1) SQL Server 2000数据导入SQL Server 2005 在SQL Server 2000中,把其数据进行备份,在数据库中点击右键,选择"所有任务"下的"备份数据库",弹出一个对话框,然后点击"添加"按钮,输入对应的数据库备份名称,就可以备份数据了.然后在SQL Server 2005中,在数据库中点击右键,点击"还原数据库",在弹出的对话框中,"常规"的选项卡中,"目标数据

SQL Server 表变量和临时表系列之概念篇

问题引入 "菜鸟啊,最近我看到阿里云开发者论坛的数据库RDS中有人在提SQL Server表变量和临时表如何选择的问题,你去深入探讨下这个问题吧,解答解答他们的疑惑吧",老鸟又开始为菜鸟找活干了. "鸟哥啊,关于表变量和临时表使用选择的问题啊,向来行业里争论不休,我比较担心我们的观点被人家拍砖啊". "鸟啊,有争论才说明这个问题有价值啊,所以我们才更应该去弄清楚,道明白啊".反正老鸟总会找到合适的理由. "那好吧,要把这个问题要刨根问底

表的最大行限制-Sql Server表的最大行怎样修改

问题描述 Sql Server表的最大行怎样修改 数据库中的表有最大行数限制吗,如果有,我怎样修改, 我向表中添加大概快30,0000条数据的时候,添加不了. 解决方案 你的主键用的是什么类型?http://www.cnblogs.com/andy_tigger/archive/2011/08/21/2147745.html 如果添加不了, 你把错误的提示发出来吧