sqlserver如何设置定时任务并发送邮件

参考:「Pbi报表服务器3」SQL SERVER创建数据库并实现数据每日自动更新

用sqlserver数据库的作业实现邮件提醒 - 拓荒er - 博客园

SQLServer Job 邮件发送_Karl_zhujt的博客-CSDN博客

现在需要每天定时把一个数据库上的文件备份到另一个数据库

一、首先创建一个存储过程,然后测试:

USE [Test]
GO

SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

create PROCEDURE [dbo].[DataUpdate]

AS
BEGIN
declare @begin varchar(50);
declare @end  varchar(50);
select @begin = (select CONVERT(varchar(12), DATEADD(day,-1,getdate()), 23));
select @end = (select CONVERT(varchar(12), GETDATE(), 23));
select @begin,@end;
	--创建远程链接服务器
execute sys.sp_addlinkedserver @server='AAAA',    --被访问的服务器别名,自己随便起名
        @srvproduct='',
        @provider='SQLOLEDB',
        @datasrc='123.59.XXX.XXX';    --被访问的服务器地址(IP地址,端口号\服务器名称) 服务器名称也可以不用

--创建本地用户与远程服务器中用户之间的映射
execute sys.sp_addlinkedsrvlogin @rmtsrvname='AAAA',    --被访问的服务器别名
        @useself='false',    --是否通过模拟本地登录名或显式提交登录名和密码来连接到远程服务器
        @locallogin=null,    --本地登录
        @rmtuser='xxx',    --用户名
        @rmtpassword='xxxxxx' ;   --密码

   begin 
--建立完成之后就可以正常使用了
--全部订单
insert into 目标表名 select * from 源服务器名.数据库名.dbo.表名 where adddate>@begin and adddate<@end order by 排序列名desc;
--拼团订单
insert into 目标表名 select * from 源服务器名.数据库名.dbo.表名 where adddate>@begin and adddate<@end order by 排序列名desc;
--普通订单
insert into 目标表名 select * from 源服务器名.数据库名.dbo.表名 where adddate>@begin and adddate<@end order by 排序列名 desc;
end
----删除运行本地与远程之间的用户映射
--execute sys.sp_droplinkedsrvlogin @rmtsrvname='服务器别名',@locallogin=null;

----删除链接服务器
--execute sys.sp_dropserver @server='服务器别名',@droplogins='droplogins';

END

GO

2.保存后执行看有没有错误,没有错误执行下一步

二、创建作业

  1. 作业 功能依赖SQL SERVER代理服务,所以第一步要先将它开启:打开计算机管理,开启sqlserver代理服务

sqlserver如何设置定时任务并发送邮件_第1张图片

也可以这么启动,

sqlserver如何设置定时任务并发送邮件_第2张图片

2.回到SSMS,左侧“对象资源管理器”中的 SQL SERVER代理此时带着绿色的标记,证明已开启

1)找到“作业”,右击单击“新建作业...”

sqlserver如何设置定时任务并发送邮件_第3张图片

2)配置作业

左侧,选择“常规”输入作业名称,这里起名叫”定时备份“,类别处选择“数据收集器”

sqlserver如何设置定时任务并发送邮件_第4张图片 

 3)左侧选择“步骤”,此时右侧是空的,需要我们来新建点击“新建”

sqlserver如何设置定时任务并发送邮件_第5张图片

 

4)在弹出的框左侧,选择“常规”输入步骤名称,此处叫“执行存储过程更新”,选择要执行的数据库“Test",输入执行存储过程语句sqlserver如何设置定时任务并发送邮件_第6张图片

ps:也可以直接写存储过程内容

sqlserver如何设置定时任务并发送邮件_第7张图片

 

 5)左侧选择“高级,在右侧”成功时要执行的操作”选择“退出报告成功的作业”,即执行成功后就推出。(这里是因为我只有一个步骤进行更新订单,所以才这么选。)选好后,点确定

sqlserver如何设置定时任务并发送邮件_第8张图片

6)接下来,在左侧选择“计划”继续设置此时计划也是空的,需要我们来“新建”

sqlserver如何设置定时任务并发送邮件_第9张图片 

7)在弹出的框中,输入计划名称因为我们要每天自动更新数据,所以计划类型选择“重复执行”“频率”处选择每天执行每天频率处,设置每天执行的时间,这里我选择凌晨选择计划开始执行的日期设置完后,会在说明处有个设置结果说明,检查一下没问题就点确定即可 sqlserver如何设置定时任务并发送邮件_第10张图片

8)此时已完成新建作业,点确定即可 sqlserver如何设置定时任务并发送邮件_第11张图片

 

 9)此时,如果在SQL SERVER代理-作业下看到我们刚新建好的“定时备份”作业,恭喜你!实现了数据库自动同步数据!

sqlserver如何设置定时任务并发送邮件_第12张图片

三、设置qq邮箱

  • 邮件服务器名称:smtp.qq.com
  • 端口号:587
  • 开启POP3/SMTP服务,产生第三方客户端授权码

1.进入QQ邮箱,找到设置>账户>点击账户选项卡sqlserver如何设置定时任务并发送邮件_第13张图片

 往下拉 开启POP3/SMTP服务,点击“生成授权码”,并妥善保存。

sqlserver如何设置定时任务并发送邮件_第14张图片

 

四、发送邮件设置

1.sqlserver如何设置定时任务并发送邮件_第15张图片

 

sqlserver如何设置定时任务并发送邮件_第16张图片 

 

 sqlserver如何设置定时任务并发送邮件_第17张图片

 

sqlserver如何设置定时任务并发送邮件_第18张图片 

 

sqlserver如何设置定时任务并发送邮件_第19张图片

 

 此处需注意那个密码 不是你qq邮箱的密码,是步骤三qq给你的授权码

sqlserver如何设置定时任务并发送邮件_第20张图片

sqlserver如何设置定时任务并发送邮件_第21张图片

sqlserver如何设置定时任务并发送邮件_第22张图片

sqlserver如何设置定时任务并发送邮件_第23张图片

sqlserver如何设置定时任务并发送邮件_第24张图片

四、测试

手动执行下作业,如果能收到邮件,表示成功

sqlserver如何设置定时任务并发送邮件_第25张图片

 

 

你可能感兴趣的:(记录常用的遗忘的知识点,数据库开发)