sql - 从表到表批量插入

标签 sql sql-server insert bulkinsert

我正在实现一个A/B/View场景,这意味着 View 指向表A,而表B 更新,然后发生切换,在加载表 A 时 View 指向表 B。

这种转变每天都会发生。有数百万行需要更新,成千上万的用户正在查看 View 。我使用的是 SQL Server 2012。

我的问题是:

  • 如何以最快的方式将数据从另一个表插入到一个表中? (在存储过程中)
  • 有什么方法可以使用 BULK INSERT 吗?或者,使用常规插入/选择是最快的方法吗?

最佳答案

您可以从 SrcTable 中选择 ColA、ColB 到 DestTable_New。加载 DestTable_New 后,重新创建索引和约束。

然后将 DestTable 重命名为 DestTable_Old,并将 DestTable_New 重命名为 DestTable。重命名速度非常快。如果出现问题,您还可以备份附近的上一个表 (DestTable_Old)。

我曾经做过这样的场景,我们必须让系统 24/7 运行,并且每天需要加载数千万行。

关于sql - 从表到表批量插入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11100589/

相关文章:

Sqlite 查询 - 测试数据库设定区域中是否存在多个值

c# - 如何对远程存储过程进行单元测试

sql-server - Feathers 和 Sequelize SQL Server 错误

asp.net - 通过 Web 服务公开 SQL Server 数据库的最佳方式是什么

sql - 我想编写一个汇总查询并将结果显示在一个表中

php - 在单个查询中从多个表获取数据 -mysql

mysql - 如何使用like运算符编写mysql存储过程

PHP INSERT into 创建数据库错误

c++ - 列表插入STL

sql - 如何修复错误 "Must Declare the Scalar Variable"