用 insert into 句子将本地数据复制到长途服务器ITeye - 娱乐之横扫全球

用 insert into 句子将本地数据复制到长途服务器ITeye

2019年02月19日10时51分40秒 | 作者: 昊宇 | 标签: 服务器,数据库,数据 | 浏览: 2797

用 insert into 句子将本地数据复制到长途服务器

EXEC sp_addlinkedserver
  @server=LinkServer, 长途服务器别号
@srvproduct=,
@provider=SQLOLEDB,
@datasrc=要拜访的长途服务器称号
go

exec  sp_addlinkedsrvlogin  LinkServer,false,null,登录用户名,登录暗码
go

declare @sql varchar(4000),@tb varchar(200)
set @tb=rj_jbxx
set @sql=N
delete from LinkServer.长途数据库名.dbo.[+@tb+N]
select COUNT(*) from 本地数据库名.dbo.[+@tb+N]
insert into LinkServer.长途数据库名.dbo.[+@tb+N]
select * from 本地数据库名.dbo.[+@tb+N]
select COUNT(*) from LinkServer.长途数据库名.dbo.[+@tb+N]
execute(@sql)
go


今后不再使用时删去链接服务器 
exec  sp_dropserver  LinkServer,droplogins
  sp_helpserver 显现可用的服务器

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


不同数据库之间复制表的数据的办法:

当表方针表存在时:

insert into 意图数据库..表 select * from 源数据库..表 

当方针表不存在时:

select * into 意图数据库..表 from 源数据库..表

假如在不同的SQL之间:

insert into openrowset(sqloledb,意图服务器名;sa;,意图数据库.dbo.表)
select * from 源数据库..表

创立链接服务器
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

-

好吧,假如上面看得烦下面有个更简单了解的比如:

Exec sp_droplinkedsrvlogin DBVIP,Null
Exec sp_dropserver DBVIP

EXEC sp_addlinkedserver
  @server=DBVIP,被拜访的服务器别号
  @srvproduct=,
  @provider=SQLOLEDB,
  @datasrc=Server2  要拜访的服务器


EXEC sp_addlinkedsrvlogin
  DBVIP, 被拜访的服务器别号
  false,
  NULL,
  sa, 帐号
  thankyoubobby 暗码


Select  *  from DBVIP.pubs.dbo.orders 


/////////////////////////////ORACLE////////////////////////////
Exec sp_droplinkedsrvlogin demo,Null
Exec sp_dropserver demo
go

EXEC sp_addlinkedserver
  @server =demo,
  @srvproduct=Oracle,
  @provider=MSDAORA,
  @datasrc=ServiceName
 

EXEC sp_addlinkedsrvlogin
  demo,
  false,
  NULL,
  userid,
  password
go

SELECT * FROM OPENQUERY(demo ,select * from tbdemo )

UPDATE OPENQUERY (demo, SELECT id FROM tbdemo WHERE id = 101)
SET name = hello;

INSERT OPENQUERY (demo, SELECT id FROM tbdemo)
VALUES (hello);

DELETE OPENQUERY (demo, SELECT id FROM tbdemo WHERE name = hello);

-详细比如

if  exists(select  1  from  master.dbo.sysservers  where  srvname  =  test) 
begin 
exec  sp_droplinkedsrvlogin  test,sa 
exec  sp_dropserver  test 
end 

树立衔接服务器
EXEC sp_addlinkedserver test, ms,SQLOLEDB, 192.168.1.99


exec sp_addlinkedsrvlogin test,false,null,sa,
select * from test.db_film.dbo.T_film
go

if  exists(select  1  from  master.dbo.sysservers  where  srvname  =  test) 
begin 
exec  sp_droplinkedsrvlogin  test,sa 
exec  sp_dropserver  test 
end 

go

版权声明
本文来源于网络,版权归原作者所有,其内容与观点不代表娱乐之横扫全球立场。转载文章仅为传播更有价值的信息,如采编人员采编有误或者版权原因,请与我们联系,我们核实后立即修改或删除。

猜您喜欢的文章