【问题标题】:Copy data from one table and save it into another table in different database on different SQL Server从一个表中复制数据并将其保存到不同 SQL Server 上不同数据库中的另一个表中
【发布时间】:2016-03-02 09:13:00
【问题描述】:

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

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

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

我怎样才能做到这一点?

【问题讨论】:

  • 链接服务器你了解吗
  • 我正在调查它
  • 写一个简单的程序来做这件事。使用程序选择和更新记录很容易。
  • “数据太大,我无法创建数据脚本”——多大?
  • 数据脚本大小将超过6GB

标签: sql-server database


【解决方案1】:

ssis transfer、select * into 等方式有很多,但如果你只是传输数据,我更喜欢下面的方式

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

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

正在创建链接服务器,你可以关注this

【讨论】:

  • 谢谢。该表有 xml 列,因此分布式查询不起作用
  • 您可以尝试导出导入向导,我不确定它是否适用于 xml 列,您可以通过右键单击数据库->任务->导出数据来执行相同操作
【解决方案2】:

您可以使用以下选项。并非所有这些都有效,具体取决于您的确切要求和服务器之间的网络安排。

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

  2. 使用链接服务器的 SQL 查询:在两台服务器之间配置的链接服务器允许您在一个服务器上引用数据库,就像它们在另一个服务器上一样同一台服务器。如果您将表名完全限定为Server.Database.Schema.Table,则任何用于在一个数据库中的两个表之间传输数据的有效 SQL 查询方法都将起作用。

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

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

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

【讨论】:

    【解决方案3】:

    希望这个查询对你有帮助!!!

    INSERT INTO [dbo].[tablename] (Column1, Column2,Column3)
    (select Column1, Column2,Column3, from [Database1].[dbo].[tablename]
    

    谢谢!!!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-09-11
      • 2010-09-16
      • 1970-01-01
      • 1970-01-01
      • 2016-03-22
      • 1970-01-01
      • 2017-12-09
      • 1970-01-01
      相关资源
      最近更新 更多