繁体   English   中英

从一个表中复制数据并将其保存到不同SQL Server上不同数据库中的另一表中

[英]Copy data from one table and save it into another table in different database on different SQL Server

我在两个不同的SQL Server中有两个不同的数据库。 数据库的架构相同,但是其中一个表包含不同的数据。

我想将所有数据从一个数据库中的一个表复制到另一数据库中的同一表,以便摆脱要从中复制数据的数据库。

数据太大,因此我无法创建数据脚本并将其运行到其他数据库上。

我该如何实现?

ssis传输有很多方法,选择*到,但是如果您只是传输数据,我更喜欢下面的方法

在源服务器上为目标服务器创建链接服务器,然后可以使用四个部分的名称引用目标服务器

假设源服务器的链接服务器是A,目标服务器的链接服务器是B,则数据移动就像

insert into B.databasename.Schema.Table
select * from table---this is in source server and db

如果数据量巨大并且您可能担心超时,则可以编写一个简单的脚本来批量执行,例如

 While (1=1)
    begin
    insert into B.databasename.Schema.Table
    select  top 10000* from table---this is in source server and db
    if (@@rowcount=0)
    break
    end

创建链接服务器,您可以按照此操作

您可以使用以下选项。 根据您的确切要求和服务器之间的网络安排,并非所有这些方法都能起作用。

  1. SQL Server Management Studio-导入和导出向导 :可从数据库>任务>导入数据(或导出数据)的右键单击菜单中访问。

  2. 使用链接服务器的SQL查询 :在两台服务器之间配置的链接服务器使您可以彼此引用数据库,就像引用它们在同一服务器上一样。 只要您将表名完全限定为Server.Database.Schema.Table ,任何在一个数据库内的两个表之间传输数据的有效SQL查询方法都将Server.Database.Schema.Table

  3. SSIS :创建一个以两个服务器为连接的SSIS包,以及一个简单的工作流以将数据从一个移动到另一个。 在线提供了大量有关如何使用SSIS的信息。

  4. 导出为平面文件格式然后进行导入 :可以使用上面的“导入/导出向导”或SSIS来完成,但是您可以将源表中的数据输出到合适的平面文件中,而不是直接在两个服务器之间管道传输数据文件系统上的格式。 CSV是最常用的格式。 然后可以使用任何文件传输方法将该文件移动到目标服务器(如果需要,可以压缩到例如Zip文件),然后导入到目标表中。

  5. 数据库备份和还原 :与(4)类似,但是可以使用“任务”>“备份...”来创建源数据库的备份,而不是使用平面文件,然后将该备份作为文件移动(就像CSV方法一样) ),并将其还原到目标服务器上。 现在,目标服务器上有两个数据库,可以将数据从一个本地移动到另一个。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM