使用批量插入导入.csv文件

时间:2012-03-14 18:06:14

标签: sql sql-server sql-server-2008 csv

我有一个csv格式文件,我想使用批量插入导入到sql server 2008。我在csv文件中有80列,例如逗号,列状态有NY,NJ,AZ,TX,AR,VA,MA 这样的几百万行。 因此,我使用excel中的自定义格式将状态列括在双引号中,以便此列将视为单列,并且不会在列之间以逗号分隔。但导入仍然不成功;它仍然以逗号分裂。任何人都可以建议使用批量插入成功导入包含逗号的列 我正在使用此代码 bulk insert test from 'C:\test.csv' with ( fieldterminator=',', rowterminator='\n' ) go 我之前看过类似问题here,但我不知道应用代码的visual basic。是否还有其他选项可以在excel中修改文件?

2 个答案:

答案 0 :(得分:3)

  

是否有其他选项可以在Excel中修改文件?

事实证明,至少在Windows中。

  1. 转到“开始”菜单>控制面板>区域和语言选择。
  2. 在“区域选项”选项卡中,单击“自定义按钮”。
  3. 在列表分隔符字段中,将,替换为|。单击“确定”。
  4. 通过Excel将文件另存为.CSV现在将创建一个以管道分隔的值文件。请务必撤消对“区域选项”设置的此更改,因为Excel将列表分隔符用于其他功能。

    然后您可以像datagod建议的那样,使用|作为列分隔符批量上传文件。

答案 1 :(得分:2)

您应该创建一个格式文件: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