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

 更新时间:2016年08月17日 17:15:54   作者:sunshine静  
这篇文章主要介绍了SQL server 表数据改变触发发送邮件的方法,非常不错,具有参考借鉴价值,需要的朋友可以参考下

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

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

以下是参考文章:

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

https://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 

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

相关文章

  • SQL窗口函数之聚合窗口函数的使用(count,max,min,sum)

    SQL窗口函数之聚合窗口函数的使用(count,max,min,sum)

    许多常见的聚合函数也可以作为窗口函数使用,包括AVG()、SUM()、COUNT()、MAX()以及MIN()等函数,本文就详细的介绍了SQL窗口函数之聚合窗口函数的使用,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-04-04
  • T-SQL篇如何防止SQL注入的解决方法

    T-SQL篇如何防止SQL注入的解决方法

    所谓SQL注入式攻击,就是攻击者把SQL命令插入到Web表单的输入域或页面请求的查询字符串,欺骗服务器执行恶意的SQL命令,对于这种行为,我们应该如何制止呢?本文将介绍一种方法,希望可以帮助有需要的朋友
    2012-11-11
  • SQL多列合并成一列的实现示例

    SQL多列合并成一列的实现示例

    在SQL中,拼接多个列数据成为一列数据是很常见的问题,本文主要介绍了SQL多列合并成一列的实现示例,具有一定的参考价值,感兴趣的可以了解一下
    2023-09-09
  • SQL开窗函数的具体实现详解

    SQL开窗函数的具体实现详解

    这篇文章主要介绍了SQL开窗函数的具体实现详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-07-07
  • 一次SQL查询优化原理分析(900W+数据从17s到300ms)

    一次SQL查询优化原理分析(900W+数据从17s到300ms)

    本文主要介绍了一次SQL查询优化原理分析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-06-06
  • SQLServer用t-sql命令批量删除数据库中指定表(游标循环删除)

    SQLServer用t-sql命令批量删除数据库中指定表(游标循环删除)

    这篇文章主要介绍了SQLServer用t-sql命令批量删除数据库中指定表的方法,大家参考使用
    2013-11-11
  • SQL Server行列转换的实现示例

    SQL Server行列转换的实现示例

    在使用SQL Server数据库的过程中我们经常会遇到需要将行数据和列数据相互转换显示的问题,本文就来介绍一下,具有一定的参考价值,感兴趣的可以了解一下
    2023-09-09
  • 真正高效的SQLSERVER分页查询(多种方案)

    真正高效的SQLSERVER分页查询(多种方案)

    Sqlserver数据库分页查询一直是Sqlserver的短板,分页查询每页30条,查询第1500页(即第45001-45030条数据)进行测试,分析出最高效的查询,感兴趣的朋友可以参考下哈
    2013-04-04
  • SQL判断字段列是否存在的方法

    SQL判断字段列是否存在的方法

    本文介绍了SQL判断字段列是否存在的方法,需要的朋友可以参考一下
    2013-03-03
  • 实例学习mssql存储过程分析

    实例学习mssql存储过程分析

    以下我来具体举三个例子说明存储过程的3个主要用法吧:
    2008-07-07

最新评论