【发布时间】:2010-11-25 14:21:30
【问题描述】:
我正在使用批量插入将 csv 导入数据库。 它是逗号分隔的 csv 文件。所有字段都没有文本限定符。
但某些字段可能包含逗号作为数据的一部分。 例如,地址字段值。这些值用双引号括起来。 只有当字段值中包含逗号时才会出现这些双引号,否则值不会被双引号括起来。 因此,在某些行中,ADDRESS 值用双引号括起来,但在其他行中则不是。 有没有办法在批量插入命令中指定文本限定符?
我尝试使用格式文件选项进行批量插入。
BULK INSERT Test_Imported FROM 'C:\test.csv'
WITH (FIRSTROW=0,FIELDTERMINATOR = ',',ROWTERMINATOR = '\n',FORMATFILE = 'C:\test.Fmt')
但我无法将双引号作为格式文件中的可选文本限定符。
PS: 这个函数实际上是更大模块的一部分,它是用 c# 编写的。 批量插入命令是从 c# 调用的。
csv 文件是通过电子邮件从另一个自动化系统传来的。我无法控制格式 csv 文件。大约有 150 列。 每个 csv 文件中平均有 12000 行。 忘记指定数据库。它是 SQL Server 2005。
【问题讨论】:
标签: c# sql sql-server csv bulkinsert