一部のテキストを時々二重引用符で囲むだけのデータで、同じ問題がありました。私の解決策は、BULK LOAD で二重引用符をインポートしてから、インポートしたデータに対して REPLACE を実行することです。
例えば:
一括挿入 CodePoint_tbl from "F:\Data\Map\CodePointOpen\Data\CSV\ab.csv" with (FIRSTROW = 1, FIELDTERMINATOR = ',', ROWTERMINATOR='\n');
Update CodePoint_tbl set Postcode = replace(Postcode,'"','') where charindex('"',Postcode) > 0
REPLACE スクリプトを書く手間を軽減するには、次のような結果から必要なものをコピーして貼り付けるだけです。
select C.ColID, C.[name] as Columnname into #Columns
from syscolumns C
join sysobjects T on C.id = T.id
where T.[name] = 'User_tbl'
order by 1;
declare @QUOTE char(1);
set @QUOTE = Char(39);
select 'Update User_tbl set '+ColumnName+'=replace('+ColumnName+','
+ @QUOTE + '"' + @QUOTE + ',' + @QUOTE + @QUOTE + ');
GO'
from #Columns
where ColID > 2
order by ColID;