2017-06-13 19 views
2

我嘗試從csv文件執行批量插入。如何在csv中爲錯過的列輸入null?

我的csv文件有7列,但表中包含8列。

我能夠使用下面的查詢執行批量插入如果我的表只有8列。

BULK INSERT Table_Name FROM 'E:\file\input.csv' WITH (ROWTERMINATOR = '0x0A',CODEPAGE = 'ACP',FIELDTERMINATOR = ',',KEEPNULLS, ROWS_PER_BATCH = 10000) 

但我的CSV只包含7列,這導致下面的錯誤..,

Bulk load data conversion error (type mismatch or invalid character for the specified codepage) for row 1, column 8 (datecolumn). 

任何人都可以給我建議的方式來解決這個不使用的FormatFile?

+1

我還沒有找到一個方法來做到這一點,所以有興趣學習,如果是可以做到的。我所做的解決這個問題的方法是爲文件中的插入創建一個「暫存」表,然後在「暫存」表中執行其他操作。 – Leonidas199x

回答

1

用7列創建一個視圖,然後插入該視圖。

例用更少的列:

CREATE TABLE test_table(col1 int, col2 int, col3 int) 
go 

CREATE VIEW v_test_table 
as 
SELECT col1, col2 
FROM test_table 

go 

INSERT v_test_table 
SELECT 1,2 

go 

SELECT * FROM test_table 
+0

你的意思是表格? –

+1

@prabhu在我的回答中增加了一個例子 –

+0

謝謝! –