SQLServer 存储过程+定时任务发邮件
SQLServer 代理发邮件需要开启SQL Server 代理服务器,然后,在【管理】-【数据库邮件】中,右键点击配置数据库邮件。

我用的是腾讯的企业邮箱,个人的163邮箱略微不同。下图是相关邮件的配置


这是配置文件的配置。

配置完成之后,就把下边语句写成存储过程,之后,再配置定时任务,定时执行该存储过程,发邮件。
ALTER PROCEDURE [dbo].[LogErrorEmail] AS
declare @emailcontent nvarchar(2000);--邮件内容
declare @emailsubject nvarchar(200);--邮件主题
declare @emailadress nvarchar(100);--邮件发送地址
declare @error int; --错误数
declare @logfield nvarchar(max); --日志字段内容
declare @num int; --数据行数 set @error=0;
set @emailcontent='日期:'+convert(varchar(10),getdate(),120)+'<br>'; --tt1_log表检查
select @num=COUNT(*) from tt1_log where DATEDIFF(DD,t1_log.LOGDATE,getdate())<2
if(@num=2)
begin
select @logfield=LOG_FIELD from t1_log where DATEDIFF(DD,t1_log.LOGDATE,getdate())=0 --今天的数据
if(@logfield like '%error%')
begin
set @emailcontent=@emailcontent+'t1_log今天有错;' ;
set @error=@error+1;
end
select @logfield=LOG_FIELD from t1_log where DATEDIFF(DD,t1_log.LOGDATE,getdate())=1 --昨天的数据
if(@logfield like '%error%')
begin
set @emailcontent=@emailcontent+'t1_log昨天有错;' ;
set @error=@error+1;
end
end
else
begin
set @emailcontent=@emailcontent+'t1_log表数据不足两条;';
set @error=@error+1;
end --t2_log表检查
select @num= COUNT(*) from t2_log where DATEDIFF(DD,t2_log.LOGDATE,getdate())<2
if(@num=2)
begin
select @logfield=LOG_FIELD from t2_log where DATEDIFF(DD,t2_log.LOGDATE,getdate())=0 --今天的数据
if(@logfield like '%error%')
begin
set @emailcontent=@emailcontent+'t2_log今天有错;' ;
set @error=@error+1;
end
select @logfield=LOG_FIELD from t2_log where DATEDIFF(DD,t2_log.LOGDATE,getdate())=1 --昨天的数据
if(@logfield like '%error%')
begin
set @emailcontent=@emailcontent+'t2_log昨天有错;' ;
set @error=@error+1;
end
end
else
begin
set @emailcontent=@emailcontent+'t2_log表数据不足两条;';
set @error=@error+1;
end if(@error>0)
begin
exec msdb.dbo.sp_send_dbmail
@profile_name ='LogErrorEmail',--配置文件名称
@recipients='56789023@qq.com',--收件email地址
@subject=@emailsubject,--邮件主题
@body=@emailcontent, --邮件正文内容
@body_format='html' --邮件内容格式
end
SQLServer 存储过程+定时任务发邮件的更多相关文章
- 带着新人学springboot的应用10(springboot+定时任务+发邮件)
接上一节,环境一样,这次来说另外两个任务,一个是定时任务,一个是发邮件. 1.定时任务 定时任务可以设置精确到秒的准确时间去自动执行方法. 我要一个程序每一秒钟说一句:java小新人最帅 于是,我就写 ...
- spring boot集成swagger,自定义注解,拦截器,xss过滤,异步调用,guava限流,定时任务案例, 发邮件
本文介绍spring boot集成swagger,自定义注解,拦截器,xss过滤,异步调用,定时任务案例 集成swagger--对于做前后端分离的项目,后端只需要提供接口访问,swagger提供了接口 ...
- Exec msdb.dbo.sp_send_dbmail 参数详解(SQL Server 存储过程发邮件)
转载oriency755 发布于2012-12-04 11:34:45 阅读数 6870 收藏 sp_send_dbmail [ [ @profile_name = ] 'profile_name ...
- SQL Server定时自动抓取耗时SQL并归档数据发邮件脚本分享
SQL Server定时自动抓取耗时SQL并归档数据发邮件脚本分享 第一步建库和建表 USE [master] GO CREATE DATABASE [MonitorElapsedHighSQL] G ...
- 使用SQLServer同义词和SQL邮件,解决发布订阅中订阅库丢失数据的问题
最近给客户做了基于SQLServer的发布订阅的“读写分离”功能,但是某些表数据很大,经常发生某几条数据丢失的问题,导致订阅无法继续进行.但是每次发现问题重新做一次发布订阅又非常消耗时间,所以还得根据 ...
- SQL SERVER 2008配置Database Mail –用SQL 数据库发邮件
SQL SERVER 2008配置Database Mail –用SQL 数据库发邮件 https://blogs.msdn.microsoft.com/apgcdsd/2011/06/28/sql ...
- Jenkins+Jmeter持续集成笔记(四:定时任务和邮件通知)
通过前几篇文章,jmeter+ant+jenkins自动化持续构建的测试平台基本成型.既然要自动化平台,最基本的肯定要实现不经过人工干预,平台会在特定的条件下自动运行测试脚本,并在脚本运行结束后,发送 ...
- 脚本监控web服务器,工作不正常发邮件提醒
背景介绍公司有多个web网站,没有配置监控服务,每天都需要定时检查服务器是否工作正常.低效耗时. 代码片段 #!/bin/bash # Author Jerry.huang (Email:Jerry. ...
- SqlServer存储过程详解
SqlServer存储过程详解 1.创建存储过程的基本语法模板: if (exists (select * from sys.objects where name = 'pro_name')) dro ...
随机推荐
- PHP断言(ASSERT)的用法
简述 编写代码时,我们总是会做出一些假设,断言就是用于在代码中捕捉这些假设,可以将断言看作是异常处理的一种高级形式.程序员断言在程序中的某个特定点该的表达式值为真.如果该表达式为假,就中断操作. 可以 ...
- RHEL 5.7 使用rpm安装XtraBackup问题总结
在Red Hat Enterprise Linux Server release 5.7 (Tikanga)上使用RPM方式安装Percona Xtrabackup 2.4.6时遇到了一些问题,特意总 ...
- [20181108]12c sqlplus rowfetch参数4.txt
[20181108]12c sqlplus rowfetch参数4.txt --//12cR2 可以改变缺省rowfetch参数.11g之前缺省是1.通过一些测试说明问题.--//前几天做的测试有点乱 ...
- 爬虫入门实例:利用requests库爬取笔趣小说网
w3cschool上的来练练手,爬取笔趣看小说http://www.biqukan.com/, 爬取<凡人修仙传仙界篇>的所有章节 1.利用requests访问目标网址,使用了get方法 ...
- Xmanager power suit 6 最新版注册激活
Xmanager Power Suit 6.0.0012 最新版注册激活,长期更新 操作步骤 Xmanger Power Suit 官方 其实有两种 .exe 文件,一个是用于试用的,在注册的时候不能 ...
- Qt在多线程中使用信号槽的示例
之前对线程理解得不深入,所以对Qt的线程机制没有搞清楚,今天写一篇文章总结一下,如有错误,欢迎指出. 首先需要理解线程是什么,线程在代码中的表现其实就是一个函数,只不过这个函数和主线程的函数同时运行, ...
- Java运行Jar包内存配置
java -jar -Xms1024m -Xmx1536m -XX:PermSize=128M -XX:MaxPermSize=256M car.jar 说明: 1.堆内存:最小1024M,最大153 ...
- 02.Python网络爬虫第二弹《http和https协议》
一.HTTP协议 1.官方概念: HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文 ...
- 计划任务执行bat
@echo offtaskkill /f /t /im ControlKJmen.exetaskkill /f /t /im KJMen.exetaskkill /f /t /im DisplayLo ...
- 数据库迁移之mysql-redis.txt
一.mysql迁移数据到redis 关于redis+mysql应用: 微博当然是最大的redis集群了: 总结了基本流程: 1. 发微博– > 进入消息队列– > 存入MySQL– > ...