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 存储过程+定时任务发邮件的更多相关文章

  1. 带着新人学springboot的应用10(springboot+定时任务+发邮件)

    接上一节,环境一样,这次来说另外两个任务,一个是定时任务,一个是发邮件. 1.定时任务 定时任务可以设置精确到秒的准确时间去自动执行方法. 我要一个程序每一秒钟说一句:java小新人最帅 于是,我就写 ...

  2. spring boot集成swagger,自定义注解,拦截器,xss过滤,异步调用,guava限流,定时任务案例, 发邮件

    本文介绍spring boot集成swagger,自定义注解,拦截器,xss过滤,异步调用,定时任务案例 集成swagger--对于做前后端分离的项目,后端只需要提供接口访问,swagger提供了接口 ...

  3. Exec msdb.dbo.sp_send_dbmail 参数详解(SQL Server 存储过程发邮件)

    转载oriency755 发布于2012-12-04 11:34:45 阅读数 6870 收藏   sp_send_dbmail [ [ @profile_name = ] 'profile_name ...

  4. SQL Server定时自动抓取耗时SQL并归档数据发邮件脚本分享

    SQL Server定时自动抓取耗时SQL并归档数据发邮件脚本分享 第一步建库和建表 USE [master] GO CREATE DATABASE [MonitorElapsedHighSQL] G ...

  5. 使用SQLServer同义词和SQL邮件,解决发布订阅中订阅库丢失数据的问题

    最近给客户做了基于SQLServer的发布订阅的“读写分离”功能,但是某些表数据很大,经常发生某几条数据丢失的问题,导致订阅无法继续进行.但是每次发现问题重新做一次发布订阅又非常消耗时间,所以还得根据 ...

  6. SQL SERVER 2008配置Database Mail –用SQL 数据库发邮件

    SQL SERVER 2008配置Database Mail –用SQL  数据库发邮件 https://blogs.msdn.microsoft.com/apgcdsd/2011/06/28/sql ...

  7. Jenkins+Jmeter持续集成笔记(四:定时任务和邮件通知)

    通过前几篇文章,jmeter+ant+jenkins自动化持续构建的测试平台基本成型.既然要自动化平台,最基本的肯定要实现不经过人工干预,平台会在特定的条件下自动运行测试脚本,并在脚本运行结束后,发送 ...

  8. 脚本监控web服务器,工作不正常发邮件提醒

    背景介绍公司有多个web网站,没有配置监控服务,每天都需要定时检查服务器是否工作正常.低效耗时. 代码片段 #!/bin/bash # Author Jerry.huang (Email:Jerry. ...

  9. SqlServer存储过程详解

    SqlServer存储过程详解 1.创建存储过程的基本语法模板: if (exists (select * from sys.objects where name = 'pro_name')) dro ...

随机推荐

  1. 剑指Offer 答题截图

  2. Spring MVC 异常处理 (九)

    完整的项目案例: springmvc.zip 目录 实例 除了依赖spring-webmvc还需要依赖jackson-databind(用于转换json数据格式) <dependency> ...

  3. python高级(1)—— 基础回顾1

    Python基础回顾 认识变量 在学习了之前的Python零基础入门系列[洗礼灵魂,修炼Python](说明一下,这个系列现在回过来再来看这个名字确实好土啊,然后有些知识点感觉还不太精准,后期看如果有 ...

  4. 【MM系列】SAP基本计量单位更改

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[MM系列]SAP基本计量单位更改   前言部分 ...

  5. python-turtle 快给你的爷爷看看啥是 “小猪佩奇”

    完整代码: #!/usr/bin/env python2 # coding=utf-8 import turtle t = turtle.Pen() t.pensize(4) t.hideturtle ...

  6. 如何激活windows或office

    郑重承诺:该激活软件没有病毒,有任何侵害行为,找我QQ:122317653 Step one: 首先你需要安装KMS Auto Net激活器,但我们都知道一些杀毒软件都会将此类激活器警告成木马病毒,原 ...

  7. C# -- 索引器、枚举类型

    C# -- 索引器.枚举类型 索引器允许类或结构的实例就像数组一样进行索引. 无需显式指定类型或实例成员,即可设置或检索索引值. 索引器类似于属性,不同之处在于它们的访问器需要使用参数. 1. 索引器 ...

  8. JavaScript -- 时光流逝(十):Screen 对象、History 对象、Location 对象

    JavaScript -- 知识点回顾篇(十):Screen 对象.History 对象.Location 对象 1. Screen 对象 1.1 Screen 对象的属性 (1) availHeig ...

  9. Emacs中多个golang项目的配置方法

    概述 最近使用golang开发项目时, 发现有时需要同时进行多个golang项目. 在这种情况下, 如果把所有的项目都放在 GOPATH 之下, 不仅管理麻烦(因为各个项目需要提交到不同的代码库), ...

  10. Tomcat结构

    Tomcat结构 Server(服务器) 服务器代表整个Tomcat容器. Tomcat提供了服务器接口的默认实现(很少由用户定制). Service(服务) 服务是位于服务器内部的中间组件,将一个或 ...