SQL提供的进行数据传输的实用程序—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对触发器和规则是不强制处理的。