【发布时间】:2019-05-26 04:08:00
【问题描述】:
我正在编写一个 SSIS 包以将文件夹中的多个文件与列的变化导入数据库。但是无法找到解决方案,因为一个表有 12 列和其他 2 列,并且在设置数据流时没有得到如何使表动态而不考虑列。任何其他比 SSIS 更好的解决方案也值得赞赏
【问题讨论】:
-
SSIS 不支持动态列。如果您的源表或目标表的列定义可能发生更改,则包将失败,因为表/文件中保存的元数据已过时。为什么表中的列数会定期变化;这听起来更像是糟糕的桌子设计。我习惯于文件的定义不时更改,但表格通常不会更改,除非经过您的开发周期;然后更新你的包将是其中的一部分。
-
同意 Larnu 的观点,但有一点需要注意……可能有 2 或 3 个不同的结构需要导入。在这种情况下,您应该为每种文件类型使用不同的子文件夹。
-
只是重读:但是,如果您的意思是您有不同的文件需要映射到不同的表,但这些表/文件的定义是静态的,那么您似乎正在尝试创建“一刀切”的源/目标。你不能那样做。您可以在单个数据流中与多个源和目标进行交互,但需要定义每个流中数据的定义。例如,您可以在一个数据流任务中拥有 3 个流,所有流都具有定义定义,这很好;您甚至可以使用转换和合并它们使它们相同。
-
“子文件夹”@AngelM.?目录的结构与此有什么关系?
-
我的意思是,如果有2种不同类型的文件,需要为每个文件创建一个与SSIS相同的子文件夹,将每个SSIS链接到一个子文件夹并导入相应的表中。
标签: sql-server ssis build-automation