我在做什么
我正在使用SQL Server 2012中的导入和导出向导从复杂电子表格中的一个选项卡导入数据。该标签包含大量数据。
我想将选项卡中的原始数据导入到数据库中的临时表中,然后运行SQL脚本来转换(规范化)数据并将其加载到最终模式。
在映射对话框中,我已将所有目标列设置为NVARCHAR(MAX)NULL(或者NTEXT NULL)。
我很乐意将所有内容导入为文本,因为一旦将数据加载到临时表,我将处理数据类型转换和规范化。
问题
向导抱怨某些列类型无法转换。它似乎正在猜测源的数据类型,并且拒绝转换它认为是双倍的列。
我根本不在乎它认为源的数据类型。我希望它将所有内容视为文本。但是,似乎没有任何方法可以更改向导对源列类型的猜测,或者强制它导入数据。
向导不允许我运行包。
问题边界
我只对解决问题的提取部分感兴趣,即如何将数据从电子表格中提取到临时表中。一旦它被提取,我用它做的是一个单独的问题,我很高兴让所有东西都放在NVARCHARs或NTEXTs的分段级别。
所需解决方案
我希望将电子表格中的数据放入临时表中,我可以从中执行其他工作。我很高兴将临时表中的所有内容都作为字符串数据。我根本不关心向导认为它导入的数据类型,我已经在目标表中指定了我想要的输出类型。
答案 0 :(得分:0)
我建议首先使用SSIS而不是导入/导出SQL Server向导。您也可以将源上的单元格格式更改为数字而不是文本。