将表复制到不同SQL Server上的其他数据库

时间:2009-03-02 18:49:26

标签: sql-server

我想将一个表从一个数据库复制到另一个数据库。我知道如果数据库位于同一个SQL Server上,您可以轻松执行以下操作。

SELECT * INTO NewTable FROM existingdb.dbo.existingtable;

如果数据库位于两个不同的SQL Server上,是否有任何简单的方法可以执行此操作,而无需遍历原始表中的每个记录并将其插入新表中?

此外,这需要在SQL Server Management Studio之外的代码中完成。

6 个答案:

答案 0 :(得分:57)

是。添加 linked server 条目,并使用select into使用四部分db对象命名约定。

示例:

SELECT * INTO targetTable 
FROM [sourceserver].[sourcedatabase].[dbo].[sourceTable]

答案 1 :(得分:3)

如果它只是复制表,那么链接的服务器可以正常工作或创建脚本但如果辅助表已经包含一些数据,那么我建议使用一些第三方比较工具。

我正在使用Apex Diff但是还有许多其他工具,例如Red Gate或Dev Art ......

第三方工具当然不是必需的,你可以在本地做所有事情,这样更方便。即使您预算紧张,也可以在试用模式下使用这些来完成工作......

Here是类似主题的一个很好的主题,有很多关于如何在纯sql中执行此操作的示例。

答案 2 :(得分:2)

如果您需要,Microsoft SQL Server数据库发布向导将生成所有必需的插入语句以及可选的模式信息:

http://www.microsoft.com/downloads/details.aspx?familyid=56E5B1C5-BF17-42E0-A410-371A838E570A

答案 3 :(得分:2)

生成脚本?

生成脚本以创建表格,然后生成插入数据的脚本。

签出SP_ Genereate_Inserts以生成数据插入脚本。

答案 4 :(得分:2)

SQL Server(2012)提供了另一种为SQL Server数据库生成脚本及其对象和数据的方法。在我们的示例中,此脚本可用于将表的架构和数据从源数据库复制到目标数据库。

  1. 使用SQL Server Management Studio,右键单击对象资源管理器中的源数据库,然后从“任务”中选择“生成脚本”。 enter image description here
  2. 在“选择对象”窗口中,选择“选择特定数据库对象”以指定要为其生成脚本的表,然后通过在每个表旁边勾选来选择表。点击下一步。 enter image description here
  3. 在“设置脚本选项”窗口中,指定保存生成的脚本文件的路径,然后单击“高级”。 enter image description here
  4. 从出现的“高级脚本选项”窗口中,将“架构和数据”指定为“脚本数据类型”。您可以从此处决定是否要编写表中的索引和键的脚本。单击确定。 enter image description here 返回“高级脚本选项”窗口,单击“下一步”。
  5. 查看“摘要”窗口并单击“下一步”。 enter image description here
  6. 您可以从“保存或发布脚本”窗口监视进度。如果没有错误,请单击“完成”,您将在指定的路径中找到该脚本文件。 enter image description here
  7. SQL Scripting方法可用于为表的架构和数据生成一个单独的脚本,包括索引和键。但是,如果表之间存在关系,则此方法不会以正确的顺序生成表的创建脚本。

答案 5 :(得分:0)

创建数据库,脚本数据库为... CREATE TO

在源服务器上的SSMS中,使用导出向导将目标服务器数据库作为目标。

  • 来源实例> YourDatabase>任务>导出数据
  • Data Soure = SQL Server Native Client
    • 验证/输入服务器&数据库
  • 目的地= SQL Server Native Client
    • 验证/输入服务器&数据库
  • 通过向导