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

 

          


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM