SQL Server数据导入向导中的数据类型转换

时间:2014-07-23 07:37:08

标签: sql-server excel import wizard

我在做什么

我正在使用SQL Server 2012中的导入和导出向导从复杂电子表格中的一个选项卡导入数据。该标签包含大量数据。

我想将选项卡中的原始数据导入到数据库中的临时表中,然后运行SQL脚本来转换(规范化)数据并将其加载到最终模式。

在映射对话框中,我已将所有目标列设置为NVARCHAR(MAX)NULL(或者NTEXT NULL)。

Screenshot of mapping dialog showing all columns set to nvarchar max.

我很乐意将所有内容导入为文本,因为一旦将数据加载到临时表,我将处理数据类型转换和规范化。

问题

向导抱怨某些列类型无法转换。它似乎正在猜测源的数据类型,并且拒绝转换它认为是双倍的列。

Screenshot showing wizard complaining about double types.

Screenshot of the error message.

我根本不在乎它认为源的数据类型。我希望它将所有内容视为文本。但是,似乎没有任何方法可以更改向导对源列类型的猜测,或者强制它导入数据。

向导不允许我运行包。

问题边界

我只对解决问题的提取部分感兴趣,即如何将数据从电子表格中提取到临时表中。一旦它被提取,我用它做的是一个单独的问题,我很高兴让所有东西都放在NVARCHARs或NTEXTs的分段级别。

所需解决方案

我希望将电子表格中的数据放入临时表中,我可以从中执行其他工作。我很高兴将临时表中的所有内容都作为字符串数据。我根本不关心向导认为它导入的数据类型,我已经在目标表中指定了我想要的输出类型。

1 个答案:

答案 0 :(得分:0)

我建议首先使用SSIS而不是导入/导出SQL Server向导。您也可以将源上的单元格格式更改为数字而不是文本。