我想将一个表从一个数据库复制到另一个数据库。我知道如果数据库位于同一个SQL Server上,您可以轻松执行以下操作。
SELECT * INTO NewTable FROM existingdb.dbo.existingtable;
如果数据库位于两个不同的SQL Server上,是否有任何简单的方法可以执行此操作,而无需遍历原始表中的每个记录并将其插入新表中?
此外,这需要在SQL Server Management Studio之外的代码中完成。
答案 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)
答案 4 :(得分:2)
SQL Server(2012)提供了另一种为SQL Server数据库生成脚本及其对象和数据的方法。在我们的示例中,此脚本可用于将表的架构和数据从源数据库复制到目标数据库。
SQL Scripting方法可用于为表的架构和数据生成一个单独的脚本,包括索引和键。但是,如果表之间存在关系,则此方法不会以正确的顺序生成表的创建脚本。
答案 5 :(得分:0)
创建数据库,脚本数据库为... CREATE TO
在源服务器上的SSMS中,使用导出向导将目标服务器数据库作为目标。