导入时自动调整数据类型

时间:2016-08-18 15:57:49

标签: sql sql-server sql-server-2008 csv

我尝试使用导入助手将CSV导入SQL Server 2008 R2 当我按照步骤操作时,我可以看到映射的概述。问题是,默认情况下,无论列的内容如何,​​所有类型都设置为varchar,大小设置为50

enter image description here

就我而言,有超过100列具有不同的内容类型(数字,日期,长文本等)。当我仍在继续时,我终于收到一条错误消息,在某些列中,文本太长,必须删除,因此导入失败。

助理是否有机会自动处理数据类型,以便我不必手动调整每一个数据类型?

1 个答案:

答案 0 :(得分:0)

解决此问题的一种方法是将CSV转换为Excel工作簿。当SQL Server的导入助手读取Excel工作表时,它会尝试通过查看每个字段的顶部(某些数字,我不记得)来自动检测数据类型。如果您的数据状况良好,这可以直接解决您的问题。

但是,如果您在使用CSV时遇到错误,您可能也会在Excel中遇到错误,但错误消息会更有助于确定哪些字段可能是问题(例如,如果它给出文本截断错误,您将知道不要查看数字格式的字段。)

另一个非常常见的CSV导入问题是字段数据中的分隔符值。例如。如果分隔符是逗号并且您有自由文本输入字段,则用户可能键入逗号。使用文件的Excel工作表版本来测试这是否是问题的一种简单方法是使用find函数检查逗号并将其替换为不像分隔符那样的分隔符。

另一个选择是更改分隔符。如果您在Windows中使用“区域和语言”设置,则可以更改"列表分隔符"在数据中不太可能存在的内容,例如条形|。为此,请更改设置,在Excel中打开CSV并将其重新保存为具有新文件名的CSV。 Excel将使用新字符作为分隔符。