在 SQL Server 2008 R2 的不同服务器中从一个 Table 到另一个 table 的 BCP

BCP from One Table to Another table in different servers in SQL Server 2008 R2

我有两个不同的服务器。我需要将数据从一个 Server table 传输到另一个 server table (两者都在相同的结构上)使用BCP 或使用 BULK INSERT。我需要在 运行 时间执行此操作。有人可以帮我吗?我在服务器之间建立了 linked share 连接。正在寻找 更快地复制数据 的选项。

BCP 几乎肯定是最快的,但它不是事务性的,错误捕获也很差。不过它非常容易使用,假设您有 server1server2,每个 the_databasethe_table 具有相同的结构。

  • server1 转到您的命令行,start->run->cmd 不是 Microsoft SQL Management Studio。
  • 类型:bcp the_database.dbo.the_table out c:\the_data.txt -T -E
  • 只需在所有提示上按 Enter
  • 稍等,在server2
  • 复制the_data.txtc:\
  • On server2 TRUNCATE the_table(除非你想追加,但要注意约束问题)
  • server2,再次转到命令行
  • 类型:bcp the_database.dbo.the_table in c:\the_data.txt -T -E
  • 神奇!您的数据已导入

这将是您最快的解决方案。您还可以使用 Microsoft SQL 管理服务器中的 IMPORTEXPORT 向导,这更像是一种 GUI 方式来做同样的事情,但是 cmd 方式将是复制大量数据(数百万行)的最快方法。如果您只是从命令行输入 bcp,您会看到很多选项。

跨服务器 bulk insert 并没有错,但原始穴居人的力量 'copy data fast' 这是最快的方法,恕我直言。