您的位置:首页 > 数据库

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

2012-10-15 13:44 501 查看
 --创建链接服务器

 exec sp_addlinkedserver 
'ITSV ',
' ',
'SQLOLEDB
', '远程服务器名或ip地址
'

exec sp_addlinkedsrvlogin 
'ITSV ',
'false ',null,
'用户名 ',
'密码 '

--查询示例

select
* from ITSV.数据库名.dbo.表名
--导入示例
select
* into 表
from ITSV.数据库名.dbo.表名

--以后不再使用时删除链接服务器

exec sp_dropserver 
'ITSV ',
'droplogins
'

--连接远程/局域网数据(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 本地表 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息