将CSV数据导入SQL Server

时间:2014-03-21 17:30:09

标签: sql-server sql-server-2008 sql-server-2008-r2 bulkinsert sqlbulkcopy

我在csv文件中有类似的数据:

Name,Age,Location,Score
"Bob, B",34,Boston,0
"Mike, M",76,Miami,678
"Rachel, R",17,Richmond,"1,234"

在尝试将这些数据BULK INSERT到SQL Server表时,我遇到了两个问题。

  1. 如果我使用FIELDTERMINATOR =','那么它会拆分第一列(有时是最后一列)
  2. 最后一列是整数列,但只要数字大于1000,它就会有引号和逗号千位分隔符
  3. 有没有办法导入这些数据(使用XML格式文件或其他)而无需先手动解析csv文件?

    我感谢任何帮助。感谢。

2 个答案:

答案 0 :(得分:0)

您可以使用http://filehelpers.sourceforge.net/

解析文件

使用该结果,请使用此方法:SQL Bulkcopy YYYYMMDD problem或直接进入SqlBulkCopy

答案 1 :(得分:0)

使用MySQL加载数据:

LOAD DATA LOCAL INFILE 'path-to-/filename.csv' INTO TABLE `sql_tablename` 
CHARACTER SET 'utf8' 
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '\"'
IGNORE 1 LINES;

部分optionally enclosed by '\"'或转义字符和引号会将第一列中的数据保存在一起。

IGNORE 1 LINES会将字段名称排除。

UTF8专栏是可选的,但如果名字有变音符号,则可以使用,例如José。