您的位置:首页 > 其它

使用BCP 命令输入大量的数据

2008-03-07 16:29 344 查看
由于前段时间做大数据量的导入程序.在做的时候遇到的问题.几万条的数据从Excel中导入到数据库中,速度是非常的慢,程序简直不能运行,后来就研究了BCP命令的方式进行导入.几十万的数据也就几十秒,很快,所以将自己的小成果给大家分享.当然,可能有很多可以完善的地方,大家共同努力吧

使用BCP 命令输入大量的数据

1:目的:将大两数据输入sql server 等数据库

2:方法:BCP命令

3:实现方式:

Sql 语句:

bulk insert T1 from 'C:"TxtFile2.txt'

WITH

( FIELDTERMINATOR=',',

ROWS_PER_BATCH=100,

errorfile='c:"aa.csv',

formatfile='C:"sql.fmt'

)

From 后面的源文件可以是txt 也可以是csv格式,两种格式的FIELDTERMINATOR一样都是’,’.

此外对于一张表,我可以只导入某些字段.这是我们必须用formatfile格式文件进行映射.文件的格式为”fmt”格式语法如下

<?xml version="1.0"?>

<BCPFORMAT

xmlns="http://schemas.microsoft.com/sqlserver/2004/bulkload/format"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

<RECORD>

<FIELD ID="1" xsi:type="CharTerm" TERMINATOR="," MAX_LENGTH="50" COLLATION="SQL_Latin1_General_CP1_CI_AS"/>

<FIELD ID="2" xsi:type="CharTerm" TERMINATOR="," MAX_LENGTH="200" COLLATION="SQL_Latin1_General_CP1_CI_AS"/>

<FIELD ID="3" xsi:type="CharTerm" TERMINATOR=""r"n" MAX_LENGTH="50" />

</RECORD>

<ROW>

<COLUMN SOURCE="1" NAME="id" xsi:type="SQLVARYCHAR"/>

<COLUMN SOURCE="2" NAME="firstname" xsi:type="SQLVARYCHAR"/>

<COLUMN SOURCE="3" NAME="age" xsi:type="SQLINT"/>

</ROW>

</BCPFORMAT>

注意TERMINATOR的设置.是”,” 还是”"t”.txt和csv文件为”,”

Excel格式文件为”"t”.

目前已经通过了对txt和csv格式的导入,对于xls文件的导入,还在进一步的研究中
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐