0

可能重复:
SQL Server 批量插入带有不一致引号的 CSV 文件

我已经获得了一百万行 CSV 以导入到 SQL Server 中,基本上是这样的:

"A",B,C,D,"E","F"

过去,我使用 OPENROWSET BULK 和一个格式文件完成了它,该文件适合 CSV 文件,没有任何数据或所有带引号的列的引号。

人们通常会做什么来处理这样的 CSV 和 FormatFile,其中有些有引号而有些字段没有?

注意:我将与另一个表交叉连接,而不是从 CSV 导入所有数据,这就是我使用 OpenRowset Bulk 的原因(而且我也无权访问服务器上的 bcp)。

4

2 回答 2

2

SQL Server 批量插入带有不一致引号的 CSV 文件中提供的解决方案建议对文件进行预处理。鉴于您的示例,您可以使用以下更新语句来更正数据,但是这仅在引号不是包含逗号的数据周围时才有效。

UPDATE  @table
SET     value = CASE WHEN LEFT(value, 1) = '"'
                          AND RIGHT(value, 1) = '"'
                     THEN SUBSTRING(value, 2, LEN(value) - 2)
                     ELSE value
                END
于 2012-07-19T03:10:30.800 回答
0

您可以先查找文本文件中的所有双引号并将其替换为空。然后您可以使用逗号(,)作为分隔符进行正常的批量插入。

于 2012-07-19T04:51:03.623 回答