1.用作业来实现数据库的同步,首先就要知道怎么建立连接 还有就是必须有这个权限了
先学习下连接数据库的基本操作。然后把他放在在job中定时执行就好了。就OK了
只有 sysadmin 和 securityadmin 固定服务器角色的成员才可以执行 sp_addlinkedsrvlogin。
-- 适合不同服务器数据之间的操作
--以后不再使用时删除链接服务器
exec sp_droplinkedsrvlogin 'DBLink',null
exec sp_dropserver 'DBLink'
--建立连接
EXEC sp_addlinkedserver 'DBLink' ,' ','SQLOLEDB','192.168.107.8'
EXEC sp_addlinkedsrvlogin 'DBLink ', 'false ',null, 'sa ', '123!@#qwe'
-- 通过在之前加入DBLink连接关键字就可以轻松的访问到远程主机的数据库的资料如下
select top 5 * from DBLink.CSSMCUR.dbo.Base_UserOrg
/*
ID CreatedOn CreatedBy ModifiedOn ModifiedBy SysVersion User Org
-------------------- ----------------------- -------------------------------------------------- ----------------------- -------------------------------------------------- -------------------- -------------------- --------------------
1001008040001848 2010-08-04 10:19:10.000 Enterprise Administrator 2010-08-04 10:19:10.000 Enterprise Administrator 0 1001008040001842 1001008040000059
1001008040001849 2010-08-04 10:19:10.000 Enterprise Administrator 2010-08-04 10:19:10.000 Enterprise Administrator 0 1001008040001844 1001008040000059
1001008040001850 2010-08-04 10:19:10.000 Enterprise Administrator 2010-08-04 10:19:10.000 Enterprise Administrator 0 1001008040001846 1001008040000059
1001008124760507 2010-08-11 17:02:55.000 Enterprise Administrator 2010-08-11 17:02:55.000 Enterprise Administrator 0 1001008124760229 1001008040000059
1001008124760508 2010-08-11 17:02:55.000 Enterprise Administrator 2010-08-11 17:02:55.000 Enterprise Administrator 0 1001008124760229 1001008040000238
(5 行受影响)
*/
--连接远程/局域网数据(openrowset/openquery/opendatasource)
--1、openrowset
--查询示例
select * from openrowset( 'SQLOLEDB ', 'sql服务器名 '; '用户名 '; '密码 ',数据库名.dbo.表名)
--生成本地表
select * into 表 from openrowset( 'SQLOLEDB ', 'sql服务器名 '; '用户名 '; '密码 ',数据库名.dbo.表名)
--把本地表导入远程表
insert openrowset( 'SQLOLEDB ', 'sql服务器名 '; '用户名 '; '密码 ',数据库名.dbo.表名)
select *from 本地表
--更新本地表
update b
set b.列A=a.列A
from openrowset( 'SQLOLEDB ', 'sql服务器名 '; '用户名 '; '密码 ',数据库名.dbo.表名)as a inner join 本地表 b
on a.column1=b.column1
--openquery用法需要创建一个连接
--首先创建一个连接创建链接服务器
exec sp_addlinkedserver 'ITSV ', ' ', 'SQLOLEDB ', '远程服务器名或ip地址 '
--查询
select *
FROM openquery(ITSV, 'SELECT * FROM 数据库.dbo.表名 ')
--把本地表导入远程表
insert openquery(ITSV, 'SELECT * FROM 数据库.dbo.表名 ')
select * from 本地表
--更新本地表
update b
set b.列B=a.列B
FROM openquery(ITSV, 'SELECT * FROM 数据库.dbo.表名 ') as a
inner join 本地表 b on a.列A=b.列A
--3、opendatasource/openrowset
SELECT *
FROM opendatasource( 'SQLOLEDB ', 'Data Source=ip/ServerName;User ID=登陆名;Password=密码 ' ).test.dbo.roy_ta
--把本地表导入远程表
insert opendatasource( 'SQLOLEDB ', 'Data Source=ip/ServerName;User ID=登陆名;Password=密码 ').数据库.dbo.表名
select * from 本地表
具体操作如下:
a)新建作业。如下图:
a、 新建作业。如下图:
![](https://i-blog.csdnimg.cn/blog_migrate/1bb1b71c3cae2bc1d88c71e67c0d2cac.png)
b、 点击【新建作业】对话框的【常规】选项卡,填写 SQL JOB的名称。如下图
c、 点击【新建作业】对话框的【步骤】选项卡,填写 步骤名称。
![](https://i-blog.csdnimg.cn/blog_migrate/4ab8cc23fbc9da23b6bd070713ed4f63.png)
![](https://i-blog.csdnimg.cn/blog_migrate/8ace0f7bccf9aed5310a112e64b82799.png)
d、 进行作业的第一个步骤------建立数据库连接操作。如下图:
![](https://i-blog.csdnimg.cn/blog_migrate/0a3fe267524a3b6be3c6bc07bb2cdd83.png)
![](https://i-blog.csdnimg.cn/blog_migrate/7a9dfc63922f4c804501498c0d960c46.png)
e、 进行作业的第下一个步骤。如下图:
e、设置作业执行计划
f、点击确定,完成SQL JOB的开发。
g、完成后作业下面就多了刚开发的作业。如下:![](https://i-blog.csdnimg.cn/blog_migrate/8f37d25036e69e74f9913f390e77352b.png)
h、作业制作完成后,可以立即让它执行。如果不让它执行,它也会在按照制定频率执行。测试作业:
![](https://i-blog.csdnimg.cn/blog_migrate/b064868b22de760038e1b50aaf950b12.png)
![](https://i-blog.csdnimg.cn/blog_migrate/82aa6a8eb4599f6c38cb4267244bfcb9.png)
![](https://i-blog.csdnimg.cn/blog_migrate/55f6c3297d60c823112b41ea9c679996.png)
*作者:Stephenzhou(阿蒙)
*日期: 2012.07.31
*Mail:szstephenzhou@163.com
*另外:转载请著名出处。
*博客地址:http://blog.csdn.net/szstephenzhou