2012-12-13 63 views
1

這裏是我的SQL批量加載一個CSV文件導入到SQL Server 2008中,但它的返回:批量插入在SQL Server不工作2008

0 row(s) affected. 

代碼:

USE energyDB 
GO 

BULK INSERT energydata 
FROM 'c:\temp\24544_MSSQL_out.csv' 
WITH 
(
    FIRSTROW = 2, 
    FIELDTERMINATOR = ',', 
    ROWTERMINATOR = '\n' 
) 
GO 

CSV文件看起來像這個(頂行被忽略)

24544,"1970-01-01 10:00:00","8056060 kWh" 
24544,"2012-12-04 00:15:00",0.176 
24544,"2012-12-04 00:30:00",0.163 
24544,"2012-12-04 00:45:00",0.016 
+0

什麼是'EnergyData',你插入的表結構? –

回答

0

批量插入不會從數據中刪除引號,您需要更改文件被導入或導入到每個列都是字符字段的表格中,並在查詢中刪除引號和轉換數據類型。我剛剛發現下面的MSDN文章:

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

它指出:

逗號分隔值(CSV)文件不受SQL Server大容量導入操作的支持。

,然後繼續與它會根據工作情況的幾個例子。

0

這個問題是有點老了,但它表明,當我搜索的問題,所以我想我會提供我的解決方案。

對我來說,這不是插入右表的一個簡單的錯誤,所以一定要檢查要插入到表中。在試圖找出雖然發生了什麼事情,我發現,你可以批量插入過程中創建一個錯誤文件,希望能引導你在正確的方向。要做到這一點,你可以使用類似ERRORFILE ='E:\Error.txt'的東西。這應該輸出錯誤,您將收到一個名爲Error.txt的文件。我在下面提供了一個完整的例子:

​​

你會發現,我已經包裹在一個交易批量插入過程。這樣,如果在批量插入過程中發生任何問題,它將回滾所有內容,並且我不會獲得部分數據導入。