2016-12-14 217 views
1

我正在运行SQL 2008,批量插入命令,同时插入数据,我试图从CSV文件中删除(“)双引号,部分工作,但没有所有记录工作,请查阅我的代码和结果的截图。批量导入CSV文件到SQL Server中 - 删除双引号

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

enter image description here

+0

有问题的行是CSV的第一个还是最后一个? – SQLChao

回答

2

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

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

您需要的格式的文件,我相信,这就是我想是怎么回事。

如果使用下面的“批量插入”命令导入数据而不使用格式文件,那么您将使用第一个列值的引号前缀和最后一个列值的引号后缀以及第一列值。从参考

Reference

例子:

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

您还可能有一个使用引号的不仅仅是分隔符更脏数据。