博客 SQLServer 实现数据库表复制到另一个数据库

SQLServer 实现数据库表复制到另一个数据库

   数栈君   发表于 2023-08-18 10:24  420  0

SQLServer 实现数据库表复制到另一个数据库

一、如果两个数据库在同一台服务器上

1、复制表结构和数据(A->B):

SELECT * INTO DatabaseB.dbo.TableB FROM DatabaseA.dbo.TableA

2、仅仅复制表结构(A->B):

SELECT * INTO DatabaseB.dbo.TableB FROM DatabaseA.dbo.TableA WHERE 1=2

二、如果两个数据库在不同的服务器上

分为导出和导入两种,都需要先连接远程数据库,再进行操作。如何连接远程数据库? 在连接远程数据库之前,需要先打开Ad Hoc服务,依次执行下面四句语句(不要一次执行):

EXEC sp_configure "show advanced options",1
RECONFIGURE
EXEC sp_configure "Ad Hoc Distributed Queries",1
RECONFIGURE

这样就可以连接远程数据库了:

SELECT * INTO DatabaseB.dbo.TableB FROM opendatasource( 'SQLOLEDB', 'Data Source=IP/ServerName;User ID=SA;Password=***' ).DatabaseA.dbo.TableA WHERE 1=2
记住,为了安全起见,执行完成之后,请关闭Ad Hoc服务:
EXEC sp_configure "Ad Hoc Distributed Queries",0
RECONFIGURE
EXEC sp_configure "show advanced options",0
RECONFIGURE,

复制表结构与数据的图文方法

复制表结构
首先,打开并连接Sql Server,在源数据库Source_db(源数据库名称)上右键,然后依次点击“编写表脚本为”→“CREATE到”→“新查询编辑器窗口”。
http://dtstack-static.oss-cn-hangzhou.aliyuncs.com/2021bbs/files_user1/article/84251ed13db3928d6eb028fb8b57e2dd..png
  

在上一步产生的编辑器中按”crtl a“组合键全选内容,然后右键“复制“(或按"crtl c"键)。
http://dtstack-static.oss-cn-hangzhou.aliyuncs.com/2021bbs/files_user1/article/58a216b6164ebaa4ae80942e335ef133..png
  

新建查询,然后右键”粘贴“(或ctrl v);如图所示,将代码中Source_db(源数据库名)改为target_db(目标数据库名)。接着右键单击”执行“执行代码。
http://dtstack-static.oss-cn-hangzhou.aliyuncs.com/2021bbs/files_user1/article/a5a030c04932c0298c95858e5dd3a702..png
  

然后,在目标数据库的表结构中就可以看到被复制过来的表了。
http://dtstack-static.oss-cn-hangzhou.aliyuncs.com/2021bbs/files_user1/article/0eceb72333e7a29b1336eb5b6a7f86c5..png
  

其实上面的操作一句sql语句就可以实现了
select * into new_table from old_table;
表的数据内容复制图文方法
选中目标数据库target_db,然后点击”任务“→”导入数据“。
http://dtstack-static.oss-cn-hangzhou.aliyuncs.com/2021bbs/files_user1/article/544127753bb28d139c1b1c3489e3d1c5..png
  

进入”SQL Server导入导出向导“,根据提示步骤操作。
http://dtstack-static.oss-cn-hangzhou.aliyuncs.com/2021bbs/files_user1/article/e9894974b01f45f91abc76d01b98b3b6..png
  

选择数据源(源数据库)。
http://dtstack-static.oss-cn-hangzhou.aliyuncs.com/2021bbs/files_user1/article/2b234ecce58ec4854604278cc947e4f3..png
  

选择目标(目标数据库)、指定表复制或查询。
http://dtstack-static.oss-cn-hangzhou.aliyuncs.com/2021bbs/files_user1/article/cefb87313aef9b6f2ba1e1ea052a4c2f..png
  

http://dtstack-static.oss-cn-hangzhou.aliyuncs.com/2021bbs/files_user1/article/65780328196eb640b71e3aece0b4524c..png
  

选择源表和源视图:设置源表和目标表后,单击“编辑映射”按钮,在弹出窗口中选中“启用标识插入”。(否则后面会出错)
http://dtstack-static.oss-cn-hangzhou.aliyuncs.com/2021bbs/files_user1/article/bb74f08dead0b0dd45c2d3b4502c905b..png
  

一直点击“下一步”至最后完成操作。
http://dtstack-static.oss-cn-hangzhou.aliyuncs.com/2021bbs/files_user1/article/5f9baee8519af417a2f647c302a9a2c4..png
  
http://dtstack-static.oss-cn-hangzhou.aliyuncs.com/2021bbs/files_user1/article/a9eea32e42d9c6afcab61497e51651fb..png
  


有点是不用输入这么多字段名了。

对应sql语句如下:

insert into table1(col1,col2,col3,...)
select [col1,col2,col3...] from table2 ;

免责申明:


本文系转载,版权归原作者所有,如若侵权请联系我们进行删除!

《数据治理行业实践白皮书》下载地址:https://fs80.cn/4w2atu

《数栈V6.0产品白皮书》下载地址:
https://fs80.cn/cw0iw1

想了解或咨询更多有关袋鼠云大数据产品、行业解决方案、客户案例的朋友,浏览袋鼠云官网:
https://www.dtstack.com/?src=bbs

同时,欢迎对大数据开源项目有兴趣的同学加入「袋鼠云开源框架钉钉技术群」,交流最新开源技术信息,群号码:30537511,项目地址:
https://github.com/DTStack

0条评论
社区公告
  • 大数据领域最专业的产品&技术交流社区,专注于探讨与分享大数据领域有趣又火热的信息,专业又专注的数据人园地

最新活动更多
微信扫码获取数字化转型资料
钉钉扫码加入技术交流群