sql-server【bcp工具】

目录

1.查看bcp是否可用

[2.bcp 命令的基本语法](#2.bcp 命令的基本语法)

3.数据导出

4.数据导入


bcp(Bulk Copy Program)是 SQL Server 提供的一个命令行工具,用于在 SQL Server 实例与用户指定格式的数据文件之间批量复制表或视图数据。bcp 工具非常适合进行大量数据的导入导出操作,因为它可以绕过 SQL Server 的解析器和查询优化器,直接将数据写入或读取到物理文件中,从而提高数据传输效率。

1.查看bcp是否可用

如果bcp工具已经安装并且在PATH环境变量中设置了正确的路径,它会显示bcp可执行文件的完整路径。

sql 复制代码
where bcp   (Windows)
which bcp   (Linux/Unix)

2.bcp 命令的基本语法

sql 复制代码
bcp {dbtable | query} {in | out | queryout | format} datafile
    [-c|-n|-w|-N|-f format_file] 
    [-e err_file] 
    [-F first_row]
    [-L last_row]
    [-b batch_size]
    [-t field_term] 
    [-r row_term] 
    [-i input_file] 
    [-o output_file] 
    [-a packet_size]
    [-S server_name[\instance_name]]
    [-U user_name]
    [-P password]
    [-T]
    [-v version]
    [-R regional_options]
    [-k]
    [-E]
    [-V (60|65|70|80|90|100|110|120)]
    [-q]
    [-C code_page_specifier]
    [-collation collation_name]

主要参数说明

  • {dbtable | query}:指定数据库中的表名或者一个SQL查询。
  • {in | out | queryout | format} :指定操作类型。
    • in:从数据文件向表中导入数据。
    • out:从表中导出数据到数据文件。
    • queryout:执行SQL查询并将结果输出到数据文件。
    • format:生成或使用格式文件来定义数据格式。
  • datafile:指定数据文件的路径。
  • -c:以字符形式存储所有列。
  • -n:以本机格式存储所有列。
  • -w:以Unicode字符形式存储所有列。
  • -N:以本机格式存储所有数值型列,并以字符形式存储其他列。
  • -f format_file:指定一个格式文件,该文件描述了如何解释数据文件中的数据。
  • -e err_file:指定错误日志文件。
  • -F first_row:指定要开始处理的第一行。
  • -L last_row:指定要处理的最后一行。
  • -b batch_size:指定每次提交给服务器的行数。
  • -t field_term :指定字段之间的分隔符,默认为制表符 (\t)。
  • -r row_term :指定行之间的分隔符,默认为换行符 (\n)。
  • -i input_file:指定输入文件,包含用于导入的SQL语句。
  • -o output_file:指定输出文件,用于存放命令执行后的消息。
  • -a packet_size:指定网络数据包大小。
  • -S server_name[\instance_name]:指定服务器实例。
  • -U user_name-P password:指定登录凭据。
  • -T:使用可信连接(Windows身份验证)。
  • -v version:指定SQL Server版本。
  • -R regional_options:设置区域选项。
  • -k:保留空格。
  • -E:使用代码页转换。
  • -V (60|65|70|80|90|100|110|120):指定兼容性级别。
  • -q:启用引用标识符。
  • -C code_page_specifier:指定数据文件使用的代码页。
  • -collation collation_name:指定排序规则。

3.数据导出

sql 复制代码
bcp db_task.dbo.task_info out C:\data.csv -T -c -t, -S localhost

bcp db_task.dbo.task_info out C:\datac.csv -T -c -t! -S localhost
 
bcp db_task.dbo.task_info out C:\datac.csv -U sa -P 20t@?_23 -c -t! -S 10.18.168.200
 
-T 参数表示使用信任连接(Windows身份验证)
-c 表示字符模式(适用于非Unicode字符数据)
-t 后代表分隔符,分隔符最好是特殊符号,不要与数据库中属性值有重复
-S 指定服务器名称及实例名
out 和 in 分别指示是导出还是导入操作
-U 用户名 -P 密码

导出示例:

4.数据导入

sql 复制代码
bcp db_task.dbo.task_info in C:\data.csv -T -c -t, -S localhost -b 2000
 
bcp db_task.dbo.task_info in C:\datac.csv -T -c -t! -S localhost -b 2000

-b 2000 指定了每批导入2000行数据后提交一次事务。

bcp 工具非常强大,适用于需要高效处理大量数据的情况。通过合理配置参数,你可以灵活地控制数据的导入导出过程。

相关推荐
爱吃青椒不爱吃西红柿‍️1 分钟前
华为ASP与CSP是什么?
服务器·前端·数据库
Yz987637 分钟前
hive的存储格式
大数据·数据库·数据仓库·hive·hadoop·数据库开发
武子康41 分钟前
大数据-230 离线数仓 - ODS层的构建 Hive处理 UDF 与 SerDe 处理 与 当前总结
java·大数据·数据仓库·hive·hadoop·sql·hdfs
苏-言1 小时前
Spring IOC实战指南:从零到一的构建过程
java·数据库·spring
Ljw...1 小时前
索引(MySQL)
数据库·mysql·索引
菠萝咕噜肉i1 小时前
超详细:Redis分布式锁
数据库·redis·分布式·缓存·分布式锁
长风清留扬1 小时前
一篇文章了解何为 “大数据治理“ 理论与实践
大数据·数据库·面试·数据治理
OpsEye1 小时前
MySQL 8.0.40版本自动升级异常的预警提示
数据库·mysql·数据库升级
Ljw...1 小时前
表的增删改查(MySQL)
数据库·后端·mysql·表的增删查改
远歌已逝4 小时前
维护在线重做日志(二)
数据库·oracle