现在的位置: 首页 > 综合 > 正文

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

2013年07月17日 ⁄ 综合 ⁄ 共 1492字 ⁄ 字号 评论关闭

--创建链接服务器

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*fromopenrowset(
'SQLOLEDB ',
'sql服务器名 ';
'用户名 ';
'密码 ',数据库名.dbo.表名)

 

--生成本地表

select*into
fromopenrowset(
'SQLOLEDB ',
'sql服务器名 ';
'用户名 ';
'密码 ',数据库名.dbo.表名)

 

--把本地表导入远程表

insertopenrowset(
'SQLOLEDB ',
'sql服务器名 ';
'用户名 ';
'密码 ',数据库名.dbo.表名)

select*from本地表

 

--更新本地表

update b

set b.列A=a.列A

 fromopenrowset(
'SQLOLEDB ',
'sql服务器名 ';
'用户名 ';
'密码 ',数据库名.dbo.表名)as a
innerjoin本地表 b

on a.column1=b.column1

 

--openquery用法需要创建一个连接

 

--首先创建一个连接创建链接服务器

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

--查询

select*

FROMopenquery(ITSV, 
'SELECT *  FROM 数据库.dbo.表名 ')

--把本地表导入远程表

insertopenquery(ITSV, 
'SELECT *  FROM 数据库.dbo.表名 ')

select*from本地表

--更新本地表

update b

set b.列B=a.列B

FROMopenquery(ITSV, 
'SELECT * FROM 数据库.dbo.表名 ')
as

innerjoin本地表 b
on a.列A=b.列A

 

--3、opendatasource/openrowset

SELECT  
*

FROM  
opendatasource(
'SQLOLEDB ''Data Source=ip/ServerName;User ID=登陆名;Password=密码 ' ).test.dbo.roy_ta

--把本地表导入远程表

 

 

--查询实例1

sp_helpserver

 

exec sp_addlinkedserver  
'SMC',
''
, 'SQLOLEDB',
'10.70.50.72'

exec sp_addlinkedsrvlogin 
'SMC',
'false'
,null, 'sa',
'gtszylcd'

 

select *
from SMC.ZMCC.dbo.city

 

 

--查询实例2

sp_helpserver

 

exec sp_addlinkedserver  
'SEP',
''
, 'SQLOLEDB',
'10.70.210.105'

exec sp_addlinkedsrvlogin 
'SEP',
'false'
,null, 'sa',
'symantec'

 

select *
from sep.sem5.dbo.adminuser

抱歉!评论已关闭.