在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
今天遇到一个问题,原有生产系统正在健康运行,现需要监控一张数据表,当增加数据的时候,给管理员发送邮件。 领到这个需求后,有同事提供方案:写触发器触发外部应用程序。这是个大胆的想法啊,从来没写过这样的触发器。 以下是参考文章: 第一种方法: 触发器调用外部程序。 xp_cmdshell https://www.ogeek.net/article/90714.htm 第一篇提供的方法是需要开启xp_cmdshell 先开启xp_cmdshell 打开外围应用配置器—> 功能的外围应用配置器—> 实例名\Database Engine\xp_cmdshell—> 启用 然后可以调用外部程序:Exec xp_cmdshell 'c:\calc.exe' 。 第二种方法:将插入的值传给.bat 。同样使用调用外部程序的 xp_cmdshell 的权限 其实第二种方法可以归为第一种。 下面说说第三种方法: 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', @[email protected]', @subject='sql server send email by trigger', @body=@content end END GO 这种方法是最直接最简便的方法。 |
请发表评论