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

问题描述:

我在两个不同的SQL Server中有两个不同的数据库。这些数据库在模式中是相同的,但在其中一个表中包含不同的数据。从一个表中复制数据并将其保存到另一个不同SQL Server上的数据库中的表中

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

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

我该如何做到这一点?

+1

你知道链接服务器 –

+0

我正在研究它 –

+1

编写一个简单的程序来做到这一点。使用程序选择和更新记录很容易。 – Kason

的方法有很多像SSIS转移,选择*成,但我更喜欢下面的方式,如果你只是将数据传输

创建源服务器上的链接服务器的目标服务器,那么你可能是指有四个目标服务器部件名称

假设源的链接服务器是服务器和目标服务器是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 

创建链接的服务器,你可以按照this

+0

这个问题上没有看到任何研究工作。谢谢你。该表有xml列,因此分布式查询不起作用 –

+0

您可以尝试导出导入向导,我不确定它是否可以与xml列一起使用,您可以通过右键单击数据库 - >任务 - >导出数据 – TheGameiswar

您有以下选项提供给您。并不是所有这些都可以工作,这取决于您的具体要求和服务器之间的网络安排。

  1. SQL Server Management Studio中 - 导入&导出向导:这是从右键菜单中访问一个数据库>任务>导入数据(或导出数据)。使用链接的服务器

  2. SQL查询:在两个服务器之间配置的链接服务器允许引用一个来自其他数据库,在几乎相同的方式,好像他们是在同一台服务器上。如果您完全限定表名为Server.Database.Schema.Table,则任何有效的SQL查询方法都可以在一个数据库中的两个表之间传输数据。

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

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

  5. 数据库备份和恢复:(4)但是,而是采用了平面文件,你可以通过创建任务的源数据库的备份类似>备份...你再往前备份作为文件(就像CSV方法一样),并将其恢复到目标服务器上。现在,您在目标服务器上有两个数据库,并且可以在本地将数据从一个数据移到另一个数据库。