点击这里给我发消息   点击这里给我发消息
全国免费热线:029-86478250
当前位置: 首页 > 技术专题 >
BCP之妙用
BCP之妙用

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对触发器和规则是不强制处理的。