插入链接的SQL Server

时间:2013-05-12 12:21:04

标签: sql-server-2008 bulkinsert linked-server bcp insert-into

我需要每天从一个SQL Server(A)批量插入大约1米的行到另一个(B)。

服务器A托管记录,并且可以作为链接服务器访问服务器B.两者都是SQL Server 2008 Express版本。由于内部政治/治理原因造成生活困难,我无法将服务器A设置为服务器B中的链接服务器,因此无法使用SELECT INTO选项。

所以我一直试图找到一种在最佳时间内推送数据的方法 - INSERT INTO语句需要大约20分钟才能执行。我正在推进的表没有任何索引可以避免从那里进一步减速。

BULK INSERT和BCP在这种情况下似乎不适用。我在某处读到的一篇文章提到用OPENROWSET BULK进行INSERT INTO,但我还没有找到办法。在其他地方提到过将其作为一项交易,但我也没有多少运气研究过。

有谁知道如何以更好的方式实现这一目标?

1 个答案:

答案 0 :(得分:0)

目前还不完全清楚您有哪些限制或为什么您提到的选项不合适,但这里有一些尝试:

  • OPENROWSET提供(或多或少)与链接服务器相同的功能,但它是 ad hoc ,其中包含查询中的所有连接信息,因此这可能是治理问题的解决方法提到
  • 使用bcp.exe将数据导出到平面文件(最好是native format),然后将其复制到服务器B并使用bcp.exe或BULK INSERT
  • 导入
  • 编写一个脚本或程序,用于查询来自服务器A的数据并将其插入服务器B(可能使用SqlBulkCopy API

当然,本网站上已有dozens of questions关于将数据复制到另一个数据库和/或服务器的信息。