【问题标题】:How to copy data from one table to another table in Diffrent servers?如何将数据从一个表复制到不同服务器中的另一个表?
【发布时间】:2013-08-16 15:51:28
【问题描述】:

我有 2 台名为 .05 和 .06 的服务器。在两台服务器中,我都有数据库名称 Media,但不幸的是,我在 .05 服务器中截断了表名 Media.Texas 表。但是知道我需要将相同的数据从 0.06 复制到 0.05 中的 Media.Texas 表。我已经从一个数据库到另一个数据库,但我从未在服务器之间做过

有什么更好的编码方式来从其他服务器带回原始数据。

insert into server2.database1.dbo.table1(
select * from server1.database1.dbo.table1)

【问题讨论】:

标签: sql tsql sql-server-2008-r2


【解决方案1】:

您的选择是:

编写一个 SSIS 包以执行提取并发布到另一台服务器。

配置复制以将结构和数据从一台服务器复制到另一台服务器 - 这取决于您需要多久确保表匹配。

创建到目标服务器的链接服务器对象,确保您对目标数据库有足够的访问权限,并编写查询以跨数据复制。

将数据导出到文件并导入目标表,例如CSV、XML。

或者,使用比较工具(有各种商业工具,例如 RedGate)来编写您需要的数据并导入它。 Microsoft Publishing Wizard 工具可用于编写表格结构和数据的脚本,适用于小型表格。

【讨论】:

  • 我应该补充一点,我假设您想使用数据库技术来完成这项任务,而不是编写一些应用程序代码来完成这项任务(例如 C# 控制台应用程序)。
  • 消息 7202,级别 11,状态 2,第 1 行在 sys.servers 中找不到服务器“162.148.140.06”。验证是否指定了正确的服务器名称。如有必要,执行存储过程 sp_addlinkedserver 将服务器添加到 sys.servers。
  • 您需要创建一个链接服务器对象,然后您可以在查询中使用该链接服务器的名称。例如SALESSYSTEM 作为别名,那么您将能够执行诸如 SELECT [id], [name] FROM [SALESSYSTEM].[Database].[dbo].[Sales] 之类的查询。此外,如果您正在连接的服务器上运行多个实例或非标准实例名称,请务必为服务器指定正在运行的实例 sqlserver,例如 servername\default。您可以在管理工作室中的服务器对象 -> 链接服务器下创建链接服务器。右键单击该选项。
【解决方案2】:

如果无法选择创建链接服务器,则可以使用 SSMS 中内置的导入/导出向导。

右键单击要复制到的数据库,然后“任务”->“导入数据”

为您的数据源选择“SQL Server Native Client 11.0”或其他,向导的其余部分应该很容易理解。

【讨论】:

  • Msg 7202,级别 11,状态 2,第 1 行在 sys.servers 中找不到服务器“162.148.140.06”。验证是否指定了正确的服务器名称。如有必要,执行存储过程 sp_addlinkedserver 将服务器添加到 sys.servers。
  • 使用服务器名,而不是IP。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-03-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多