2013-10-30 32 views
7

我想批量插入csv文件的列到目標表的特定列。 描述 - 目標表的列數多於我的csv文件。所以,我希望使用BULK INSERT將csv文件列轉到正確的目標列。批量插入到特定列中?

這可能嗎?如果是,那我該怎麼做?

我看到在教程和代碼 - http://blog.sqlauthority.com/2008/02/06/sql-server-import-csv-file-into-sql-server-using-bulk-insert-load-comma-delimited-file-into-sql-server/

http://www.codeproject.com/Articles/439843/Handling-BULK-Data-insert-from-CSV-to-SQL-Server

BULK INSERT dbo.TableForBulkData 
FROM 'C:\BulkDataFile.csv' 
WITH 
(
FIELDTERMINATOR = ',', 
ROWTERMINATOR = '\n' 
) 

他們不告訴你如何控制其中的數據插入。

+0

詢問代碼的問題必須證明對所解決問題的最小理解。包括**嘗試的解決方案**,**爲什麼他們沒有工作**,以及預期的結果。 – showdev

+0

插入列是什麼意思?你不想要所有的數據嗎?你應該顯示你有什麼以及你想用它做什麼。 –

+0

您將需要使用格式文件。 –

回答

8

是的,你可以做到這一點。最簡單的方法是從目標表創建一個視圖,並按照它們出現在源文件中的順序列出您希望數據轉到的列。Select然後BULK INSERT到您的視圖,而不是直接到表。

+0

哇!這個怎麼用 ?如果我在上面的代碼中將mytable替換爲myview,它實際上是否會將數據從我的csv文件移動到真正的表中? – Steam

+0

是的。它的確會。 – RBarryYoung

+0

謝謝。在探索所有選項後,我感到沮喪。我將使用C#和一些ssis。我正在切換到SQL語句而不是csv文件。感謝您向我展示這種替代方式。它的靜態,但很好知道。 – Steam