2011-06-15 61 views
4

有沒有什麼辦法可以將數據從一個.csv或製表符分隔的.txt文件快速導入到SQL精簡版3.5表中?.CSV到SQL CE表?

我有大量的手動輸入不實用的數據。

我知道如果我想導入基於服務器的SQL數據庫,我可以使用BULK INSERT函數,但是這種方法在SQL CE中不起作用。

我使用visual studio 2010,我安裝了SQL Server Management Studio。

任何幫助將不勝感激!

+0

可能重複http://stackoverflow.com/questions/ 5961535 /從數據源到數據源的bulk-insert-from-datatable) – 2011-06-15 01:58:48

回答

1

如果您有Microsoft Access,則可以將.csv或分隔的.txt數據作爲新表導入,然後升遷到SQL數據庫。你也可以創建一個鏈接表並複製粘貼數據(比如說從Microsoft Excel),並且它往往是高效和可靠的(將錯誤引發到可以查看的單獨表中)。

+0

感謝您的快速回復。如何將Access 2010錶轉換爲SQL CE? – 2011-06-15 01:45:39

2

也許簡單越好。沒有什麼比你自己的代碼更容易擴展的容易。如果你想要的話,你甚至可以動態地建立表格,但是不需要。

var stuff = from l in File.ReadLines(filename) 
      let x = l.Split(new [] {',', ' '}, StringSplitOptions.RemoveEmptyEntries) 
        .Skip(1) 
        .Select(s => int.Parse(s)) 
      select new 
      { 
       Sum = x.Sum(), 
       Average = x.Average() 
      }; 

參見:Read Csv using LINQ

1

我的首選工具時處理CSV是PowerShell的,因爲它有一個內置在進口的CSV命令它是這種東西太棒了膠水。

下面是開發人員導入csv並將其轉換爲插入腳本的鏈接。 http://allen-mack.blogspot.com/2008/02/powershell-convert-csv-to-sql-insert.html

若要從鏈接腳本(注:PowerShell的給你選項卡完成,所以你可以用它來幫助文件路徑,而你在打字):

  1. 創建一個名爲類似導入文件-File.ps1並將腳本的內容從鏈接複製到它。
  2. 開始的PowerShell
  3. 類型「設置executionpolicy下RemoteSigned」(注:這是放鬆你的系統只是一點點的安全;但默認設置不會讓你運行任何腳本)
  4. 導航與目錄您的腳本和導入文件
  5. 類型'。\ import-file.ps1。\ importfile.csv'
  6. 按回車鍵;瞧,你應該有相同的directoy插入SQL腳本(即,在我們的例子「importfile.sql」)

最後,因爲你可以實例。從powershell內部的網絡對象,你可以改變腳本,並做一些事情,如直接插入數據到數據庫中。

+0

不適用於sql CE 4.0,因爲SSMS使用sql ce 3.5,如果您嘗試使用它打開SQL CE 4.0文件,它會崩潰。 – 2012-10-27 17:37:47