You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

2024年仍需依赖SqlBulkCopy等工具快速复制SQL Server表行吗?

无需外部工具实现SQL Server低日志批量表复制

针对你提到的跨数据库表复制需求,SQL Server现在有原生的低日志批量操作方案,完全不需要依赖SSIS、SqlBulkCopy这类外部工具,核心方法如下:

1. 新建表时用SELECT ... INTO(低日志默认支持)

如果目标表还未创建,SELECT ... INTO本身就是低日志操作——只要数据库处于简单恢复模式或批量日志恢复模式,它会直接创建新表并批量写入数据,不会生成大量事务日志。这是最简洁的跨库复制方式:

SELECT *
INTO dbo.TargetTable
FROM AnotherDB.dbo.SourceTable

2. 向已有表插入用INSERT ... SELECT + TABLOCK提示

如果目标表已经存在,在INSERT语句中添加WITH (TABLOCK)提示,同时确保数据库处于简单/批量日志恢复模式,就能触发批量日志行为,大幅减少日志生成量:

INSERT INTO dbo.TargetTable WITH (TABLOCK)
SELECT * FROM AnotherDB.dbo.SourceTable

注意:TABLOCK会对目标表施加排他锁,执行期间其他会话无法读写该表,需要根据业务并发情况评估使用时机。

关键前提:恢复模式设置

上述低日志效果仅在以下两种恢复模式下生效:

  • 简单恢复模式
  • 批量日志恢复模式
    如果数据库处于完整恢复模式,即使使用上述方法,依然会生成完整事务日志。

内容的提问来源于stack exchange,提问作者Alain

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 23:16:01