专栏首页Golang语言社区如何跨服务器复制表中数据

如何跨服务器复制表中数据

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

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

当表目标表存在时:

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

本文分享自微信公众号 - Golang语言社区(Golangweb)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2017-09-11

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 如何跨服务器复制表中数据

    不同服务器数据库之间的数据操作 不同数据库之间复制表的数据的方法: 当表目标表存在时: insert into 目的数据库..表 select * from ...

    李海彬
  • Golang 通过 smtp 发送邮件

    package main import( "fmt" "net/smtp" "encoding/base64" ) //html,plain func Send...

    李海彬
  • 转-Golang语言-里面select-case和time.Ticker的使用注意事项

    上周末参加Go技术聚会,京东的美女工程师讲到一个select-case和time.Ticker的使用注意事项(真实的应用场景是:在测试收包的顺序的时候,加了个t...

    李海彬
  • 如何跨服务器复制表中数据

    不同服务器数据库之间的数据操作 不同数据库之间复制表的数据的方法: 当表目标表存在时: insert into 目的数据库..表 select * from ...

    李海彬
  • 惊艳!Python3 的这几个特性

    距离官方放弃Python2的时间越来越近,很多项目也逐渐的开始放弃对Python2的支持,比如Django,IPython这些框架就走在了最前列,Python2...

    py3study
  • SQL学习之学会使用子查询

    1、SELECT语句是SQL的查询。我之前的随笔中所用的SELECT语句都是简单的查询,即从单个数据库表中检索数据的单条SELECT语句。 查询:任何SQL语句...

    郑小超.
  • MySQL学习笔记

    ​ 数据库提供一个存储空间用于存放各种数据(其中包括整型、文本、小数、日期等),我们可以将数据库看作是一个存储数据的容器。

    杨校
  • python学习总结

    希望自己以后在学习Python的过程中可以边学习边总结,就自己之前的学习先做以总结,之后将不断总结更新。

    oYabea
  • 注入学习1:SQL注入语句大全

    之前做了xss预防,以及些许的注入预防了,但是不够全面,如果还是搜集了下一些常用的注入手段,以此用来进行更好的预防.

    @坤的
  • Oracle常用函数

    Create Table Test6( id varchar2(30), name varchar2(30), age...

    郑小超.

扫码关注云+社区

领取腾讯云代金券