使用大容量插入导入.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我在这里看到了以前问过的类似问题,但我不知道如何应用visual basic代码。是否有其他选项可以修改excel中的文件?

是否有其他选项可以修改excel中的文件?

事实证明,至少在Windows中是这样。

  1. 进入「开始」菜单>"控制面板">"区域和语言选项"
  2. 在"区域选项"选项卡中,单击"自定义"按钮
  3. 在"列表分隔符"字段中,将,替换为|。单击"确定"

通过Excel将文件保存为.CSV现在将创建一个管道分隔的值文件。请确保撤消对"区域选项"设置的更改,因为Excel在其他功能(如函数)中使用列表分隔符。

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

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

最新更新