首页 文章

使用SSIS将多个不同的Excel表格转换为SQL Server 2008的最佳方法

提问于
浏览
0

我已经看到了很多关于如何使用Foreach循环容器枚举Excel工作簿或工作表的示例,假设所有源文件的数据结构相同且数据将转到单个目标表 .

处理以下场景的最佳方法是什么: - 单个Excel工作簿,10 - 20张或10 - 20个Excel工作簿,1个工作表 . - 每个工作簿/工作表具有不同的模式 - 每个源工作表都有1:1匹配的目标表 . - 标准清理:将创建工作簿并将其放置在“加载”文件夹中,SSIS包在读取加载文件夹中的文件的作业上运行,并在成功完成后将其移动到存档文件夹

我知道我可以为每个工作簿创建一个单独的SSIS包,但这似乎很难维护 . 任何帮助是极大的赞赏!

1 回答

  • 1

    我们早就遇到了同样的问题 . 我将总结一下我们所做的一切 . 我们使用C#以编程方式编写了一个SSIS包 . 维护MetaTable,其保存平面文件的信息(表名,列,平面文件中这些列的位置) . 我们提取平面文件名,然后在元表中查询该平面文件所属的表及其所具有的列以及平面文件中的列位置 .

    我们通过将每个平面文件作为命令行参数传递给PackageExe来在SQLSERVER中执行包 . 所以它读取并处理每个平面文件 .

    Example 假设我们有一个平面文件 FF ,我们首先提取平面文件的名称,然后通过查询到DB来获取表名,假设它是 TT ,其中包含 COL-1COL-2 列,分别位于 1 to 1011 to 20 . 通过从MetaTable读取此信息,我现在创建了一个派生列转换(包) .

    我们的应用程序在文件夹中有一组平面文件,通过使用“For Loop Container SSIS”,我们一次获得一个平面文件并执行上述过程 .

相关问题