sql-server【bcp工具】

server/2024/10/18 16:45:45/

目录

1.查看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 localhostbcp db_task.dbo.task_info out C:\datac.csv -T -c -t! -S localhostbcp 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 2000bcp db_task.dbo.task_info in C:\datac.csv -T -c -t! -S localhost -b 2000

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

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


http://www.ppmy.cn/server/128142.html

相关文章

【Iceberg分析】调研Iceberg中表的原地演变

调研Iceberg中表的原地演变 文章目录 调研Iceberg中表的原地演变原生非分区表文件关系图表的原地演变之表schema演变新增字段new_column文件关系变化图为新增字段写入数据文件关系变化图删除新增字段文件关系变化图新增字段new_column2文件关系变化图删除数据文件关系变化图 原…

精选算法入门——day2

精选算法入门——day2 题目一题干解题思路一解题思路二解题思路三思路三代码 题目二题干解题思路代码 题目三题干解题思路一代码解题思路二代码解题思路三代码 题目四题干解题思路代码 题目一 题干 数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。…

Vite多环境配置与打包:

环境变量必须以VITE开头 1.VITE_BASE_API: 在开发环境中设置为 /dev-api,这是一个本地 mock 地址,通常用于模拟后端接口。 2.VITE_ENABLE_ERUDA: 设置为 "true",表示启用调试工具,通常是为了…

【数据结构】链表(1)

【概念】 一种物理存储结构上的非连续存储结构,数据元素的逻辑顺序是通过链表中的引用链接次序来实现的 也就是说,链表是由一个一个的节点组织起来的,如车厢一般,整体就叫做链表 【链表结构】 节点可以理解为”节点对象“&#…

软考数据库部分 ---- (概念数据库模型,三级模式,两级映像,事物管理)

文章目录 一、概念数据库模型二、结构数据库模型三、三级模式四、两级映像五、关系模式基本术语六、关系模式七、关系的数学定义八、数据定义语言九、SQL访问控制十、视图十一、索引十二、关系模式十三、范式十四、数据库设计十五、事物管理(ACID)十六、…

【Python游戏开发】贪吃蛇游戏demo拓展

拓展上一项目【Python游戏开发】贪吃蛇 实现穿墙效果 # 检测游戏是否结束 def check_gameover():global finished# 移除蛇头位置超过窗口判断for n in range(len(body) - 1):if(body[n].x snake_head.x and body[n].y snake_head.y):finished True # 状态检测 def ch…

M3u8视频由手机拷贝到电脑之后,通过potplayer播放报错找不到文件地址怎么解决?

该文章前面三节主要介绍M3u8视频是什么,视频播放错误(找不到地址)的解决方法在后面 M3U8是一种多媒体播放列表文件格式,主要用于流媒体播放。 一、文件格式特点 1. 文本文件:M3U8是一个采用 UTF-8 编码的文本文件,这意味着它可…

使用 Python 遍历文件夹

要解决这个问题,使用 Python 的标准库可以很好地完成。我们要做的是遍历目录树,找到所有的 text 文件,读取内容,处理空行和空格,并将处理后的内容合并到一个新的文件中。 整体思路: 遍历子目录&#xff1…