将数据从excel导入sql server

时间:2017-06-19 18:50:06

标签: sql sql-server ssis

我正在尝试使用ssis包将数据导入sql server。我有一个名为description的列,它有一个包含690个字符的单元格。

我收到截断错误,因为SSIS无法确定所需的最大长度。我尝试从excel源连接更改输出列属性,但这没有帮助。但是,当我将具有最大长度的单元格移动到第一行时,它完美地工作(因为ssis包确定了前8行的最大长度)。

因为我想自动化这个过程,所以我不想每次都修改excel表。我已经阅读过有关更改ssis读取的行集数量的内容,但尚未弄清楚如何执行此操作。

任何类型的帮助将不胜感激。

2 个答案:

答案 0 :(得分:1)

问题的答案是你转到Windows注册表并更改excel连接管理器以查看超过8行以确定列数据类型和长度,这解决了问题。

通过输入" regedit"进入Windows注册表。在运行控制台中,当您在Windows注册表中时,请按照

进行操作
HKEY_LOCAL_MACHINE -> SOFTWARE -> Wow6432Node -> Microsoft -> Jet -> 4.0 ->Engines -> Excel -> and then set the typeguessrows to 0, so that it can parse through the entire file instead of the top 8 rows.

答案 1 :(得分:0)

您需要指定Excel源输入列的长度。

在您的SSIS包中,右键单击数据流任务中的Excel源,然后单击" Excel源的高级编辑器"。接下来,将列的数据类型和长度从其默认值更改。

如果您使用的是VS2015或更高版本,请在Excel Source和clic属性上使用右键。在Show Advance Editor链接中属性clic的底部,并更改Input and Output Properties标签中的长度。

希望它适合你。