Ssis 如何基于给定平面文件动态选择派生列转换

Ssis 如何基于给定平面文件动态选择派生列转换,ssis,sql-server-2008-express,Ssis,Sql Server 2008 Express,我需要使用SSIS将数据从平面文件获取到数据库。这里的问题是,我必须根据平面文件动态选择派生列转换(DCT) 示例: 假设我有flatfile-1,它需要5列的DCT, 然后,如果我得到另一个flatfile-2,它需要10列的DCT。那么,如何根据平面文件动态选择DCT呢 我必须为许多桌子做这个。。。请分享您的想法。以下是您可能不希望听到的答案:不幸的是,您不能这样做。SSIS包需要常量元数据,这意味着数据流中的所有外部元数据(源表和目标表)都不应更改。您可以这样理解:SSIS将元数据中的更改

我需要使用
SSIS
将数据从平面文件获取到数据库。这里的问题是,我必须根据平面文件动态选择派生列转换(DCT

示例:

假设我有
flatfile-1
,它需要5列的DCT, 然后,如果我得到另一个
flatfile-2
,它需要10列的DCT。那么,如何根据平面文件动态选择DCT呢


我必须为许多桌子做这个。。。请分享您的想法。

以下是您可能不希望听到的答案:不幸的是,您不能这样做。SSIS包需要常量元数据,这意味着数据流中的所有外部元数据(源表和目标表)都不应更改。您可以这样理解:SSIS将元数据中的更改视为可能的错误


也许你应该考虑并利用它的BIML功能。

< P>我想我有办法做到这一点, 我正在编写生成SSIS包的C#代码。因此,对于循环中得到的每个平面文件,我将根据编号对其进行处理(每个文件属于一个由编号指示的表)。现在,当我得到平面文件时,我提取其名称(其中包含编号)然后在运行中,我通过查询元表获得表名和该数据组的列,并使用获得的列作为“派生列转换”的列,并基于位置(在我的示例中,平面文件导入是基于它们的位置完成的)我认为通过按语法生成包,我们将能够为每个平面文件生成包。 希望这有帮助