【发布时间】:2013-06-04 06:34:22
【问题描述】:
我花了很多时间尝试使用 SSMS (2012) 将 CSV、Excel 数据导入 SQL Server 2003。我尝试以 excel、CSV 和文本文件的形式导入,所有选项都出现了自己的问题。
现在最大的挫折是在 Flatfile 选项下导入 CSV 时。在“高级”选项卡中,我已将源日期列设置为 [DT_DBTIMESTAMP] 这与我的目标日期列的类型 [DT_DBTIMESTAMP] YET 匹配,尽管当我运行导入 SQL Server 错误并说
• 错误 0xc02020a1:数据流任务 1:数据转换失败。列的数据转换返回状态值 2 和状态文本“由于可能丢失数据,无法转换该值。”。 (SQL Server 导入和导出向导)。
如果两列的类型完全相同,这怎么会失败?
提前感谢您的帮助。
【问题讨论】:
-
首先,没有SQL Server 2003,所以请说明您拥有的是哪个版本。其次,平面文件中的数据始终是字符串,直到您将其转换为编程语言中的数据结构。日期的格式很可能是向导无法正确识别的,这可能是因为您的区域设置。由于您实际上没有显示任何示例数据,因此很难说是否是这种情况。您可能希望将数据导入
varchar列,然后使用 TSQL 进行转换,或者使用完整的 SSIS 包,以便您可以控制平面文件连接器上的区域设置。 -
澄清:Windows Server 2003。我使用的是 SSMS 2012。我的文本文件是制表符分隔的。所以我将文本文件中的第一行/第一行作为我的列名。连续的行是每行中的不同值。例如:(第 1 行)ID LogID EnterDate LeaveDate(第 n 行)132.. 3233... 10/4/10 0:00 10/13/10 0:00
标签: sql-server csv-import