2012-08-15 68 views
1

在從csv文件批量插入文件中的某行具有00000100008值時,兩個源(從中創建csv文件)和目標文件具有相同的字段(char(11))。批量插入問題

當我嘗試插入我得到了以下錯誤:

Bulk load data conversion error (truncation) for row 1, column 1 (fieldname) 

如果我刪除前導零和csv文件將此值更改爲100008,然後批量插入,目標表temptable顯示'++ 100008作爲插入的值。這是爲什麼?如何在不引導雙重加號的情況下應對價值?

下面是腳本:

BULK 
INSERT temptable 
FROM 'c:\TestFile.csv' 
WITH 
(
    FIELDTERMINATOR = ',', 
    ROWTERMINATOR = '\n' 
) 
GO 

編輯:從CSV文件中的一些樣本記錄。

100008,111122223333,Mr,ForeName1,SurName1,1 Test Lane,London,NULL,NULL,NULL,wd25 123,[email protected],NULL 
322,910315715845,Ms,G,Dally,17 Elsie Street,NULL,NULL,GOOLE,NULL,DN146DU,[email protected], 
323,910517288401,Mrs,G,Tom,2 White Mead,NULL,NULL,YEOVIL,NULL,BA213RS,[email protected], 
+1

您是如何查看和編輯csv文件的?在記事本++或程序員記事本或類似文件中打開它,然後您可以看到*正確*該文件中包含的內容*(例如,沒有Excel會更改數據的外觀)*。 – MatBailie 2012-08-15 13:29:33

+0

德姆,我正在用windows記事本查看csv文件。 – Nexus23 2012-08-15 13:31:19

+0

值是用單引號分隔的嗎? (你能發佈文件的確切內容嗎?) – 2012-08-15 13:33:56

回答

0

我的第一個想法是該文件保存在Unix系統上,並且您可能與不同的樣式換行符不兼容。 我的第一個建議是使用十六進制編輯器來分析文本文件,以確定哪些字符被放置在那裏。

++ 100008基本意思是 - 行格式與頁面標題不一致。解決此問題運行dbcc checktable。

我希望這會幫助你。

Regards,

+0

文件保存在窗口中。我已經爲該表運行了dbcc checktable命令,但它沒有返回任何錯誤。 – Nexus23 2012-08-15 13:50:23