2015-06-21 40 views
3

我们正试图设计一个将超大型Excel文件导入SQL数据库的最佳方法。使用SSIS有点麻烦,因为它会扫描顶部的X记录以确定文件的格式,但下面的行可能会有所不同,所以需要大量的试验和错误,我们必须将不寻常的列置于顶部,以便SSIS可以学”。将大型Excel文件导入到SQL Server中的最佳方法

当我们获得新的文件格式导入时,它们符合行格式等方面的规范 - 所以我们可以说我们事先知道模式。 SQL目标表具有相同的架构,并具有一些额外的列,如插入日期和原始文件名。

有没有更简单的方法来创建我们要插入的新文件的格式定义?我们不必使用SSIS,我们可以使用任何其他工具,尽可能多地实现自动化。有测试数据的理智,我们将导入,我们计划做对分期的数据集,如基本的查询问题“的纪录不到1%能错过邮政编码”等

非常感谢

+1

该文件在Excel中是强制性的吗?如果可以导出为CSV,则可以使用BCP将整行导入暂存表中的单个记录,然后运行Stored Proc来检查错误,以及上面提到的“学习”部分。然后你可以从那里很容易地考虑自动化。 –

+0

有一个服务器级设置,告诉SSIS要扫描多少行以确定文件的格式。我忘记了设置的名称,但我确信它可以很容易地搜索到。 –

+0

@TabAlleman是正确的,你可以使用TypeGuessRows = 0(https://jingyangli.wordpress.com/2009/02/13/imex1-revisit-and-typeguessrows-setting-change-to-0-watch-for-performance /),但是大文件可能会出现性能问题,因为它会扫描整个文件。我建议追求将文件转换为分隔格式。大多数系统的出口不仅仅是excel。 –

回答

0

也许您可以将数据作为文本导入,然后可以使用派生列转换对其进行转换。您可以使用连接字符串中的IMEX选项将数据从Excel读取为文本。有关此参数的更多信息,请参阅here

相关问题