参考:「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.保存后执行看有没有错误,没有错误执行下一步
二、创建作业
也可以这么启动,
2.回到SSMS,左侧“对象资源管理器”中的 SQL SERVER代理此时带着绿色的标记,证明已开启
1)找到“作业”,右击单击“新建作业...”
2)配置作业
左侧,选择“常规”输入作业名称,这里起名叫”定时备份“,类别处选择“数据收集器”
3)左侧选择“步骤”,此时右侧是空的,需要我们来新建点击“新建”
4)在弹出的框左侧,选择“常规”输入步骤名称,此处叫“执行存储过程更新”,选择要执行的数据库“Test",输入执行存储过程语句
ps:也可以直接写存储过程内容
5)左侧选择“高级,在右侧”成功时要执行的操作”选择“退出报告成功的作业”,即执行成功后就推出。(这里是因为我只有一个步骤进行更新订单,所以才这么选。)选好后,点确定
6)接下来,在左侧选择“计划”继续设置此时计划也是空的,需要我们来“新建”
7)在弹出的框中,输入计划名称因为我们要每天自动更新数据,所以计划类型选择“重复执行”“频率”处选择每天执行每天频率处,设置每天执行的时间,这里我选择凌晨选择计划开始执行的日期设置完后,会在说明处有个设置结果说明,检查一下没问题就点确定即可
9)此时,如果在SQL SERVER代理-作业下看到我们刚新建好的“定时备份”作业,恭喜你!实现了数据库自动同步数据!
三、设置qq邮箱
- 邮件服务器名称:smtp.qq.com
- 端口号:587
- 开启POP3/SMTP服务,产生第三方客户端授权码
往下拉 开启POP3/SMTP服务,点击“生成授权码”,并妥善保存。
四、发送邮件设置
此处需注意那个密码 不是你qq邮箱的密码,是步骤三qq给你的授权码
四、测试
手动执行下作业,如果能收到邮件,表示成功