BCP命令行SQL SERVER导出导入

BCP 命令行导出导入【次快,通用】


适用场景

    没有企业版,无法用在线索引重建;
    跨服务器 / 跨版本迁移;
    需灵活筛选数据(如只迁移 MaxInTime>2026-01-01 的数据)。

操作步骤
步骤 1:导出源表数据到本地文件(CMD 命令行)

# 导出(UTF-8编码,批量大小10万,提升速度)
bcp 源数据库名.dbo.TBLESIItemLogLot_bak out E:\BCP\ItemLogLot.dat -S 本地服务器名 -U sa -P 密码 -n -b 100000 -q

# 若需筛选数据(只导出MaxInTime>2026-01-01),用query参数:
bcp
 "SELECT * FROM 源数据库名.dbo.TBLESIItemLogLot_bak WHERE MaxInTime > 
'2026-01-01'" queryout E:\BCP\ItemLogLot_filter.dat -S 本地服务器名 -U sa -P 
密码 -n -b 100000 -q


步骤 2:导入到 MES_BAK 库

# 导入(先在MES_BAK库创建结构一致的空表)
bcp MES_BAK.dbo.TBLESIItemLogLot_bak in E:\BCP\ItemLogLot.dat -S 本地服务器名 -U sa -P 密码 -n -b 100000 -q -E


参数说明

    -n:使用本机数据类型(最快的导出格式);
    -b 100000:每批 10 万行,平衡内存和速度;
    -q:处理包含特殊字符的表名 / 库名;
    -E:保留自增列的值(如有)。

优势 & 注意事项

    速度快:2 亿行数据约 30 分钟~1 小时(取决于磁盘 IO);
    无需企业版,所有 SQL Server 版本支持;
    建议在服务器本地执行(避免网络传输),用 SSD 存储导出文件。

白俊遥博客
请先登录后发表评论
  • 最新评论
  • 总共0条评论