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

本文详细介绍了如何在SQL Server中设置定时任务,包括创建存储过程、开启SQL Server代理服务、创建作业和步骤,并讲解了如何配置作业计划进行每日自动数据备份。此外,还指导了使用QQ邮箱作为邮件服务器,包括设置邮件服务器参数、获取授权码以及发送邮件的配置。通过这些步骤,可以实现数据库数据的自动同步和邮件提醒。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

参考:「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代理服务

也可以这么启动,

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

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

2)配置作业

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

 

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

 

4)在弹出的框左侧,选择“常规”输入步骤名称,此处叫“执行存储过程更新”,选择要执行的数据库“Test",输入执行存储过程语句

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

 

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

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

 

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

8)此时已完成新建作业,点确定即可 

 

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

三、设置qq邮箱

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

1.进入QQ邮箱,找到设置>账户>点击账户选项卡

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

 

四、发送邮件设置

1.

 

 

 

 

 

 

 

 

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

四、测试

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

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值