SQL提供的进行数据传输的实用程序—BCP

网络整理 - 07-27

  BCP语句的作用:

  BCP是SQL提供的进行数据传输的实用程序,这种语句提供了非常快的数据导入的方法。(当然7。0也有BCP的替代方法就是DTS,但是我们还是要来讲讲BCP。因为个人觉得它导入导出的速度非常的快。而且系统开销小,因为BCP是基于命令行的)

  BCP支持的文件类型是ASCII文本文件,本地的SQL格式文件和UNICODE文件。所以大家不用考虑用BCP来导入EXCEL或者ACCESS。

  执行了BCP后的语法如下:

  以下为引用的内容:

  

Microsoft(R) Windows 98

  (C)Copyright Microsoft Corp 1981-1999.

  C:\>bcp

  usage: C:\MSSQL7\BINN\BCP.EXE {database.owner.dbtable

  | query} {in | out | queryout | format} datafile

  [-m maxerrors] [-f formatfile] [-e errfile]

  [-F firstrow] [-L lastrow] [-b batchsize]

  [-n native type] [-c character type] [-w wide character type]

  [-N keep non-text native] [-6 6x file format] [-q quoted identifier]

  [-C code page specifier] [-t field terminator] [-r row terminator]

  [-i inputfile] [-o outfile] [-a packetsize]

  [-S server name] [-U username] [-P password]

  [-T trusted connection] [-v version] [-R regional enable]

  [-k keep null values] [-E keep identity values]

  [-h "load hints"]


  语法说明如下:

  database 需要访问的数据库名字

  owner 所访问表或者视图的用户名字

  dbtable 所访问的表或者视图

  query 产生一个结果集的SQL语句,当然语句要用双引号引起来

  in out queryout format 数据传输的方向。In表示导入,out表示导出。

  Datafile 导入时的源数据文件名或者是导出生成的文件名字。

  上面是BCP的语法说明,下面讲讲一些经常使用到的参数

  [-f formatfile] 用来输入输出格式的文件名字,可以包含有路径

  [-U username] 登陆数据库的表示符

  [-P password] 登陆数据库的口令

  [-S server name] 数据库的名字,如果是两台服务器之间导入导出必须要填写

  [-c character type] 字符数据模式,在使用了该模式以后就不需要使用-f这个参数

  其他的参数可以在SQL的帮助中找到,我就不详细介绍了。

  操作的模式:

  在使用BCP导入数据时,有两种模式:快速和慢速模式。快速模式绕过事务日志,慢速模式将所有数据都记录在事务日志中。

  在使用BCP之前为了能够运行在快速模式下,你首先需要把数据库的SELECT INTO/BULK COPY设置成TURE。

  通过BCP直接向数据库导入数据时,需要考虑你的导入的表中的触发器,规则,索引等。BCP对触发器和规则是不强制处理的。