【问题标题】:INSERT INTO Linked SQL Server插入链接的 SQL Server
【发布时间】:2013-05-12 12:21:03
【问题描述】:

我需要每天从一台 SQL Server (A) 向另一台 (B) 批量插入大约 1m 行。

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

所以我一直在努力寻找一种在尽可能好的时间内推送数据的方法——一个 INSERT INTO 语句大约需要 20 分钟才能执行。我要推入的表没有任何索引,以避免从那里进一步放慢速度。

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

有谁知道我怎样才能更好地做到这一点?

【问题讨论】:

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


    【解决方案1】:

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

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

    当然,这个网站上已经有 dozens of questions 将数据复制到另一个数据库和/或服务器。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-02-16
      • 2017-09-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多