我有一个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中修改文件?
答案 0 :(得分:3)
是否有其他选项可以在Excel中修改文件?
事实证明,至少在Windows中。
,
替换为|
。单击“确定”。通过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