2012-02-27 42 views
1

我使用以下命令從文本文件導入數據,但是,我需要找到一種在文本文件中選擇特定列的方法。以下鏈接已建議我不過我努力理解我是否需要MSDN上的例子,以取代目前的SQL:只導入特定數據列 - 逗號分隔列表

BULK INSERT T2 FROM 'c:\Temp\Data.txt' WITH (FIELDTERMINATOR = ',') 

http://msdn.microsoft.com/en-us/library/ms179250.aspx
http://msdn.microsoft.com/en-us/library/ms187908.aspx

我已經舉行了下列領域在由逗號分隔的文本文件中。數據也用逗號分隔,使我可以使用上面的代碼將其全部導入。

日期,時間,訂單,項目,輸出槽,交貨時間

有沒有辦法只能進口日期,時間,項目和交貨時間到SQL數據庫表?

+0

我確信有很多方法可以做到這一點,比我更多的知識淵博的人可以幫助更多,但你可以用許多不同的語言編寫腳本來完成這項任務。你完成這項任務的目標是什麼語言/技術? MySQL的? MSSQL?一個bash語言? – 2012-02-27 17:56:07

+0

@ Will Buck Im使用構建它的C#和SQL在ASP.Net中創建項目。所有數據目前都來自文本文件。我喜歡使用批處理文件,但我知道他們是最好的東西。所以,我認爲這可能會使用SQL。 – Blob 2012-02-27 18:03:52

+1

爲什麼不只是批量插入臨時T3然後從T3中選擇你想要的列到T2?操作數據一旦你把它放在表格中,IMO會更容易;當你完成時,扔掉臨時表。是的,它的一些開銷,但遠遠快於必須放棄列。或者讓系統生成CSV不會將輸出插槽放在輸出中,或者在Excel中打開輸出刪除該列並重新保存爲CSV ...這裏有很多選項。 – xQbert 2012-02-27 18:05:31

回答

1

使用Format File作爲您的BULK INSERT。您可以指定通過此文件定義導入哪些字段。

編輯:來自MSDN的示例。

BULK INSERT bulktest..t_float 
FROM 'C:\t_float-c.dat' WITH (FORMATFILE='C:\t_floatformat-c-xml.xml'); 
GO 
+0

那是什麼鏈接告訴我做什麼,但我把它放在SQL語句中? – Blob 2012-02-27 19:45:10

+0

@ user1091114看我的編輯。 – 2012-02-27 19:48:55