将CSV文件批量导入SQL Server - 去除双引号

4

我正在运行 SQL 2008,使用 bulk insert 命令插入数据时,尝试从 CSV 文件中删除双引号 ("),虽然部分情况下有效,但并不适用于所有记录,请检查我的代码和结果截图。

Bulk Insert tblUsersXTemp 
 from 'C:\FR0250Members161212_030818.csv'
 WITH (FIELDTERMINATOR = '","', 
 ROWTERMINATOR = '"\n"',
 --FormatFile =''
 ERRORFILE = 'C:\bulk_insert_BadData.txt')

enter image description here


有问题的行在 CSV 文件中是第一行和最后一行吗? - SQLChao
2个回答

5

在执行批量插入之后,您可以替换双引号。

UPDATE tblUsersXTemp
SET usxMembershipID = REPLACE(usxMembershipID, CHAR(34), '')

这里的CHAR(34)代表什么意思? - Sam P
@psam 这些引号 - SQLChao

1

我想你需要一个格式文件,这就是我认为正在发生的事情。

如果您使用以下批量插入命令导入数据而不使用格式文件,则第一列值会有引号前缀,最后一列值会有引号后缀,并且第一列值会有引号前缀。

参考资料

来自参考资料的示例:

BULK INSERT tblPeople
   FROM ‘bcp.txt’
   WITH (
      DATAFILETYPE=char’,
      FIELDTERMINATOR=‘","’,
      ROWTERMINATOR = ‘\n’,
      FORMATFILE = ‘bcp.fmt’);

您可能还会遇到脏数据,其中引号不仅用作分隔符。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接