Sql Server bcp 常用操作

     bcp 用于sql server 大表大数据量快速迁移: 

1、导出表数据

bcp dbo.pal_pqc out pal_pqc.dat -Usa -Ppassword   -Sserver_ip -d db_name -b 100000 -c -o dbo.pal_pqc_out.log

2、条件导出表数据

bcp "select * from dbo.pal_pqc where model='LA1A'" queryout pal_pqc.dat -Usa -Ppassword   -Sserver_ip -d db_name -b 100000 -c -o dbo.pal_pqc_out.log

3、导入表数据(目标表必须存在,如果源表与目标表字段格式存在差异,导入时必须指定格式化文件,格式化文件可用于建立表结构)

bcp dbo.pal_pqc_his in pal_pqc.dat -Usa -Ppassword   -Sserver_ip -d db_name -b 100000 -c -o dbo.pal_pqc_his_in.log

4、导出表格式化文件(表结构信息)

bcp dbo.bobcat_slave format  -Sserver_ip  -Usa -Ppassword -d testdb -f bobcat_slave.xml -x

5、重要参数解释

-n 使用数据的本机(数据库)数据类型进行大容量复制操作,导出的数据文件为二进制模式,用于sql server 之间的数据迁移

-N 执行大容量复制操作时,对于非字符数据使用本机数据类型,对于字符数据使用Unicode 类型,导出的数据文件为字符二进制模式

-c 使用字符执行大容量复制操作,使用char作为存储类型,导出的数据文件为字符模式,可以用于sql server 与非sql server 之间的数据迁移

-w 使用 Unicode 字符执行大容量复制操作,使用nchar作为存储类型,导出的数据文件为字符模式

-k 指定在操作过程中空列应该保留 null 值,而不是所插入列的任何默认值

-b 指定每批导入数据的行数,每个批次均作为一个单独的事务进行导入并记录,在提交之前会导入整批,默认情况下,数据文件中的所有行均作为一个批次导入

-o 将日志记录到文件

-f 如果是bcp format则指生成的格式化文件名,如果是bcp in 则指要使用的格式化文件

-x 生成xml格式的格式化文件

-T 使用本机登陆的windows账号连接数据库,不用指定数据库的用户名、密码

 

6、加快bcp表数据导入速度的措施:

    a、删除表上索引,导入完成后再并行建立索引;

    b、将数据库恢复模式调整为大容量日志恢复模式以减少导入期间的事务日志生成量,导入完成后调整为完整恢复模式并立即进行数据库备份;

 

          

posted @   踏雪无痕2017  阅读(834)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
点击右上角即可分享
微信分享提示