使用BULK INSERT导入.csv文件

问题描述:

我有一个CSV格式的文件,我想导入使用BULK INSERT SQL Server 2008中。我在csv文件80列已用逗号例如列国家有纽约州,新泽西州,亚利桑那州,TX,AR,VA,MA这样的数以百万计的行数。 所以我包围在使用自定义格式在Excel中双引号的状态栏,使这一列将视为一列,以逗号列之间不分裂。但仍然导入不成功;仍然以逗号分割。任何人都可以请建议成功导入包含逗号使用批量插入列 我使用此代码 bulk insert test from 'C:\test.csv' with ( fieldterminator=',', rowterminator='\n' ) go 我看到了类似的问题,先前问here,但我不知道视觉基本应用代码。是否有任何其他选项来修改Excel中的文件?使用BULK INSERT导入.csv文件

是否有任何其他选项来修改Excel文件?

原来有,至少在Windows中。

  1. 转到“开始”菜单>“控制面板”>“区域和语言选项”。
  2. 在区域选项选项卡中,单击自定义按钮。
  3. 列表分隔符领域,以|更换,。点击确定。

通过Excel将文件另存为.CSV现在将创建一个以管道分隔的值文件。一定要将此更改撤销到“区域选项”设置,因为Excel使用列表分隔符来执行其他功能。

然后你可以做datagod建议和批量上传使用|作为列分隔符的文件。

+0

感谢您的帮助..我很感激。它成功导入数据! – alex 2012-03-15 00:20:12

您应该创建一个格式文件:http://msdn.microsoft.com/en-us/library/ms191516.aspx

如果您的数据包含逗号,我会选择一个不同的分隔符。你可以指定“|”作为格式文件中的分隔符。

例子:

10.0 
4 
1  SQLCHAR  0  100  "|"  1  Col1 SQL_Latin1_General_CP1_CI_AS 
2  SQLCHAR  0  100  "|"  2  Col2 SQL_Latin1_General_CP1_CI_AS 
3  SQLCHAR  0  100  "|"  3  Col3 SQL_Latin1_General_CP1_CI_AS 
4  SQLCHAR  0  7000 "\r\n" 4  Col11 SQL_Latin1_General_CP1_CI_AS 
+0

什么是格式文件? – JoJo 2013-11-14 14:22:52