怎么把一个300万以上的CSV文件导入到SQL数据库表中
CSV文件的内容是以逗号来分隔,然后有6个字段大概是
aa,bb,cc,dd,ee,ff
42222222223432432432,32432432432432432432,2332432432,32432432432,32432432,23432432
42222222223432432432,32432432432432432432,2332432432,32432432432,32432432,23432432
42222222223432432432,32432432432432432432,2332432432,32432432432,32432432,23432432
42222222223432432432,32432432432432432432,2332432432,32432432432,32432432,23432432
这样的数据。
我通过bcp命令导进去
create table xxdd
(
aa nvarchar(1000)
)
bcp sqlwygl..xxdd in D:\datatest\result.csv -c -S(local) -Usa -P123
这样可以导进去只一列以逗号分隔,如果导成多列的话创建表多个字段,就导不进去。
我想问一下有没有办法直接导csv的文件,如果是转成EXCEL的文件的话就算了,光是打开这个文件都会很慢的。
------解决方案--------------------用bulk insert,
bulk insert [目标表]
from '[csv文件]'
with
( FIELDTERMINATOR =',', --> 指定分隔符
ROWTERMINATOR ='\n',
KILOBYTES_PER_BATCH=5000 )
------解决方案--------------------
好像这个openrowset(bulk是2005后才引入的,sql server 2000不支持。
修改成这样试试:
bulk insert xxdd
from 'c:\wc.csv'
with
(
FIRSTROW = 2,
FORMATFILE&nb