将csv文件导入到SQL Server 2008表中

问题描述:

我正在使用SQL Server导入和导出向导从csv文件导入数据以追加到我现有的SQL Server表中。将csv文件导入到SQL Server 2008表中

因此,要将csv文件中的数据追加到我的SQL Server表中,在Choose a Data Source窗口中,我确保我的csv数据源中的每列与我的SQL Server表列具有相同的数据类型。

但是,我最终导致在导入时出错。

错误0xc02020a1:数据流任务1:数据转换失败。 “成熟度(小时)”列的数据 转换返回状态值2和状态 文本“由于可能丢失 数据,因此无法转换该值。”。 (SQL Server导入和导出向导)

错误0xc0209029:数据流任务1:SSIS错误代码 DTS_E_INDUCEDTRANSFORMFAILUREONERROR。 “输出列”成熟度 (小时)“(42)”因为错误代码0xC0209084发生而失败,并且“输出列”成熟度(小时)“(42)”上的错误行处置 指定 错误失败。 指定组件的指定对象发生错误。在此 之前可能会发布错误消息,并提供有关失败的更多信息。 (SQL Server导入和 导出向导)

我的SQL Server表有Maturity(小时)int数据类型。

对于我的csv文件,在SQL Server导出/导入向导中,我为Maturity(小时)选择了DT_I4,这相当于SQL Server中的int数据类型。尽管如此,我仍然无法摆脱过去3个小时的错误。

有关如何解决此问题的任何线索?

+0

做的所有领域具有相同长度的数据类型也开 – Ron 2013-03-14 21:06:50

+0

罗恩您好,感谢您的评论。?。 Apaprt确保SQL结束和csv文件上的每个字符串字段的字段大小,如何确保int列的字段大小? – Nemo 2013-03-14 21:09:35

+0

我不确定csv文件中的值,并且列是否有严格地说是int。我会尝试通过将列类型更改为数字并指定精度。 – Ron 2013-03-14 21:14:12

只要看看csv文件,如果任何字段有逗号(如果您使用逗号作为列分隔符或双引号(如果您使用双引号作为文本限定符)。上述2种情况

注:我把这个作为答案,因为我无法对你的问题发表评论

+0

我使用双引号作为文本限定符,并在通过分治法追踪大量数据时,发现有几行有双引号。感谢您的一般答案。 – Nemo 2013-03-28 18:13:22

+0

你能告诉我你是如何处理这个错误的?你刚刚跳过这些记录,或者你做了其他修复? – Maximus 2013-03-29 04:50:34

+0

我曾经从我的一个团队获取csv文件,我有一份工作将其导入到我的sql表中。我要求我的团队向我发送干净的数据。我希望团队负责给我提供正确的资料。 :) – Nemo 2013-03-29 13:50:34