access update语句执行_远程定时备份Access数据库到SQL Server

一、整体思路

1、 使用SQL Server内存储过程被定时执行的方法,在作业>步骤>计划时间内设置时间节点触发步骤,时间节点可以触发重复执行步骤或只执行一次。

2、 在Host1机器上SQL Server中创建数据库,表

3、 在Host2(Host1上也可以,此处用于验证局域网机器备份)机器上创建一个Access数据库,表,该数据库位于共享路劲下

4、 Host1上的SQLServer内创建的表与Host2上ACCESS内的表字段一致

5、 在Host1上SQL Server中创建的数据库下创建存储过程 数据库>可编程性>存储过程

6、 新建存储过程,在存储过程中写SQL语句用于将ACCESS中的表数据插入到SQL Server表中。

7、 在步骤中调用刚才创建的存储过程

8、 在SQL Server中查看结果

二、实验环境

Host1:

OS:Win7 sp1

IP:172.20.10.10/24

数据库类型:SQL Server 2008R2

数据库:BackupAccess

表:dbo.Access

字段:序号,日期,时间

Host2:

OS:win7 sp1

IP:172.20.10.9/24

数据库类型:Access2007

数据库:Test.mdb

表:Test

字段:序号,日期,时间

三、填坑过程

1、 SQL语句执行时需要用到microsoft.jet.oledb.4.0或者Microsoft.ACE.OLEDB.12.0驱动,需要开启两项服务SQLServer(MSSQLSERVER)和SQL Full-text Filter Daemon Launcher (MSSQLSERVER)将这两项的登录身份设置为本地系统账户,并且勾选允许服务与桌面交互

cf632155a110e1befaa51bdb33d761b1.png

0694107dd548f07ffdb399cc716ea1f0.png

2、 需要在SQL Server内开启2项服务

在新建查询内运行一下语句

--启用Ad Hoc Distributed Queries

Exec sp_confiure ‘show advanced options’,1

Reconfigure

Exec sp_configure’Ad Hoc Distributed Queries’,1

Reconfigure

使用完成后,可以用如下语句关闭

Exec sp_configure’Ad Hoc Distributed Queries’,0

Reconfigure

Exec sp_confiure ‘show advanced options’,0

Reconfigure

3、 使用SQL Server2012用户请自觉下载AccessDatabaseEngine_X64文件并安装。

4、 局域网远程计算机的登录账户和密码必须与SQL Server计算机账户密码一致,远程计算机共享ACCESS文件时注意共享路劲权限,需要设置为Everyone和管理员账户完全控制,否则会提示“文件已经被使用”的错误。

四、具体步骤

1、 连接SQL Server数据库

在Host1上连接SQL Server数据库

d216643f71d29ede0538d85fef253798.png

2、 创建数据库和表

95a38d472cc9208822043aec848b0047.png

3、创建ACCESS数据库和表

6d6cb25c29b2b58ea5b23a661738a5fd.png

3、 ACCESS内创建测试数据

bf10ce3506aabd5d620d5f5c81f93a6d.png

4、 Host1上对SQL Server创建存储过程

3c330c4b5ead5b9b309981cfc3c2508a.png

5、 配置存储过程

b2f59a26c2d8274d64896487d3a7cca0.png

SQL语句:” insert into dbo.Access SELECT * from openrowset('microsoft.jet.oledb.4.0','172.20.10.9EAccessBackupTest.mdb';;,Test) where 序号 > (select top 1 序号 from dbo.access order by 序号 desc )”

注意:SQL server2008内支持microsoft.jet.oledb.4.0驱动。

SQLServer2012内不支持,需要下载安装AccessDatabaseEngine_X64文件,将此处修改为“Microsoft.ACE.OLEDB.12.0”

该SQL语句目的:将ACCESS的表Test中的最新数据同步到SQL Server的表dbo.Acesss中,并且实现只同步最新的记录。利用数据库排列唯一序号,并检查该序号数值大小的原理实现。

6、配置完存储过程后可手动执行一次存储过程或将存储过程内的SQL语句拷贝至新建查询内运行。

8d13f3f667d6973e30bc096b5699ab4c.png

89b0b59d0a2545daa54b16d8cf5e4629.png

7、配置SQL Server作业,先启动代理服务

2b7510934e78583394a95347694e9575.png

新建作业

a14f28453f1b7d98c66b346d189fe143.png

5c989735952f370b594adeea655e98f0.png

28e62447365c4ed6c262b76aedef7193.png

03f5472ba1037e88081d0f4d1631f439.png

66cdc40fbbca45c6b199ed5a960b66aa.png

f011631c7d6d9477bd90f99eedfb2767.png

配置完成后即可定时将ACCESS数据库的TEST表内的数据同步到SQLServer中

2f65e64b660b3686ebaba3af4a62e587.png

1eaafa6db6766681747065fff2495351.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值