不同服务器数据库之间的数据操作

 1 --创建链接服务器 
2 exec sp_addlinkedserver 'ITSV' , '' , 'SQLOLEDB' , '远程服务器名或ip地址'
3 exec sp_addlinkedsrvlogin 'ITSV' , 'false' , null , '用户名' , '密码'
4
5 --查询示例
6 select * from ITSV.数据库名.dbo.表名
7
8 --导入示例
9 select * intofrom ITSV.数据库名.dbo.表名
10
11 --以后不再使用时删除链接服务器
12 exec sp_dropserver 'ITSV' , 'droplogins'
13
14 --连接远程/局域网数据(openrowset/openquery/opendatasource)
15 --1、openrowset
16
17 --查询示例
18 select * from openrowset('SQLOLEDB' , 'sql服务器名' ; '用户名' ; '密码' , 数据库名.dbo.表名)
19
20 --生成本地表
21 select * intofrom openrowset('SQLOLEDB' , 'sql服务器名' ; '用户名' ; '密码' , 数据库名.dbo.表名)
22
23 --把本地表导入远程表
24 insert openrowset( 'SQLOLEDB' , 'sql服务器名' ; '用户名' ; '密码' , 数据库名.dbo.表名)
25 select *from 本地表
26
27 --更新本地表
28 update b
29 set b.列A=a.列A
30 from openrowset('SQLOLEDB' , 'sql服务器名' ; '用户名' ; '密码' , 数据库名.dbo.表名) as a inner join 本地表 b
31 on a.column1 = b.column1
32
33 --openquery用法需要创建一个连接
34
35 --首先创建一个连接创建链接服务器
36 exec sp_addlinkedserver 'ITSV' , '' , 'SQLOLEDB' , '远程服务器名或ip地址'
37 --查询
38 select *
39 FROM openquery(ITSV , 'SELECT * FROM 数据库.dbo.表名')
40 --把本地表导入远程表
41 insert openquery(ITSV , 'SELECT * FROM 数据库.dbo.表名')
42 select * from 本地表
43 --更新本地表
44 update b
45 set b.列B=a.列B
46 FROM openquery(ITSV , 'SELECT * FROM 数据库.dbo.表名') as a
47 inner join 本地表 b on a.列A=b.列A
48
49 --3、opendatasource/openrowset
50 SELECT *
51 FROM opendatasource('SQLOLEDB' , 'Data Source=ip/ServerName ; User ID=登陆名 ; Password=密码').test.dbo.roy_ta
52 --把本地表导入远程表
53 insert opendatasource('SQLOLEDB' , 'Data Source=ip/ServerName ; User ID=登陆名 ; Password=密码').数据库.dbo.表名
54 select * from 本地表

 

posted on 2011-11-17 18:48  煙灰  阅读(105)  评论(0编辑  收藏  举报

导航