2013-10-20 171 views
0

我有做工精細的簡單批量導入腳本SQL批量導入

BULK 
INSERT tablename 
FROM 'd:\www\ftp\test.csv' 
    WITH 
    (
    KEEPIDENTITY, 
    FIELDTERMINATOR = ',', 
    ROWTERMINATOR = '\n', 
    ERRORFILE = 'd:\www\ftp\test7.log' 
) 
GO 

現在在test.csv文件也有類似的值:

Bike, Red, "100,00", Blue 
Step, Blue, "60,40", Black 

我的問題是如何處理腳本中的「100,00」(「xxx,xx」)值?

謝謝!

+1

看到http://stackoverflow.com/questions/12902110/bulk-insert-correctly-quoted-csv-file-in-sql服務器 –

+1

好吧,所以它不能做到。 – user2483081

回答

1

插入記錄到一個臨時表,然後做這樣的事情。要得到的結果,然後你可以添加行到您所需Table.This是CSV文件

CSV_FILE


您可以執行以下操作將其插入臨時表中。

Create Table #Temp 
(
Product NVARCHAR(50), 
Colour NVARCHAR(50), 
Number NVARCHAR(50), 
Spare NVARCHAR(50), 
Colour1 NVARCHAR(50) 
) 
GO 

BULK 
INSERT #Temp 
FROM 'C:\Users\ali\Desktop\test.csv' 
    WITH 
    (
    FIELDTERMINATOR = ',', 
    ROWTERMINATOR = '\n' 
) 
GO 

UPDATE #Temp 
SET Number = Number + ',' + Spare 

ALTER TABLE #temp 
DROP Column Spare 

UPDATE #Temp 
SET Number = REPLACE(Number, '"', '') 

SELECT * FROM #Temp 

結果集

enter image description here

SELECT * INTO [Destination_Table] FROM #Temp 
DROP TABLE #Temp