2012-08-15 63 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