批量插入问题

时间:2012-08-15 13:24:07

标签: sql sql-server bulkinsert

在从csv文件批量插入期间,文件中的行具有00000100008值,两个源(从中创建csv文件)和目标 temptable 都有相同的字段(char(11))。

当我尝试插入时出现以下错误:

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

如果我删除了前导0并将此值更改为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,test@email.com.com,NULL
322,910315715845,Ms,G,Dally,17 Elsie Street,NULL,NULL,GOOLE,NULL,DN146DU,test1@email1.com,
323,910517288401,Mrs,G,Tom,2 White Mead,NULL,NULL,YEOVIL,NULL,BA213RS,test3@tmail2.com,

1 个答案:

答案 0 :(得分:0)

我的第一个想法是该文件保存在Unix系统上,并且您可能与不同的样式换行符不兼容。 我的第一个建议是使用十六进制编辑器分析文本文件,以尝试确定放在那里的字符。

++ 100008基本上意味着 - 行格式与页眉不一致。要解决此问题,请运行dbcc checktable。

我希望这会对你有所帮助。

此致