1

我花了很多时间尝试使用 SSMS (2012) 将 CSV、Excel 数据导入 SQL Server 2003。我尝试以 excel、CSV 和文本文件的形式导入,所有选项都出现了自己的问题。

现在最大的挫折是在 Flatfile 选项下导入 CSV 时。在“高级”选项卡中,我已将源日期列设置为 [DT_DBTIMESTAMP] 这与我的目标日期列的类型 [DT_DBTIMESTAMP] YET 相匹配,尽管当我运行导入 SQL Server 错误并说

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

如果两个列的类型完全相同,这怎么会失败?

在此先感谢您的帮助。

4

2 回答 2

0

我看到 SQL 服务器导入向导(我使用的是 2008 R2 版)有很多问题,从 CSV 文件中读取日期字段,当格式为拉丁文时-日期在月份之前,例如 25/12/2013(圣诞节)。看起来它总是假设 MM/DD/YYYY,并且没有明确的方法可以告诉读取为 DD/MM/YYYY(或者我没有找到)。如果我解决,将发布。谢了。

于 2013-08-30T11:49:48.440 回答
0

可能不是 SQLServer 在导入时抱怨丢失数据,而是在读取时抱怨。例如,DT_DBTIMESTAMP 类型需要格式 yyyy-mm-dd hh:mm:ss[.fff]。如果您的数据在任何维度上的格式都不正确(例如您的 mm > 12 或 dd > 31),则可能是问题所在。就像@Pondlife 建议的那样,我将所有内容都放入一个 varchar(max) 字段,然后运行 ​​TSQL 以查看是否所有行都可以转换为 DBTIMESTAMP 数据类型是一个简单的转换语句。

于 2013-06-08T18:30:53.677 回答