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

相关推荐
十叶知秋2 分钟前
【jmeter】jmeter的线程组功能的详细介绍
数据库·jmeter·性能测试
瓜牛_gn2 小时前
mysql特性
数据库·mysql
奶糖趣多多3 小时前
Redis知识点
数据库·redis·缓存
数新网络4 小时前
《深入浅出Apache Spark》系列②:Spark SQL原理精髓全解析
大数据·sql·spark
CoderIsArt4 小时前
Redis的三种模式:主从模式,哨兵与集群模式
数据库·redis·缓存
师太,答应老衲吧6 小时前
SQL实战训练之,力扣:2020. 无流量的帐户数(递归)
数据库·sql·leetcode
Channing Lewis7 小时前
salesforce case可以新建一个roll up 字段,统计出这个case下的email数量吗
数据库·salesforce
毕业设计制作和分享8 小时前
ssm《数据库系统原理》课程平台的设计与实现+vue
前端·数据库·vue.js·oracle·mybatis
ketil278 小时前
Redis - String 字符串
数据库·redis·缓存
NiNg_1_2348 小时前
高级 SQL 技巧详解
sql