Sql server 使用SSIS将两个略有不同的文件上载到数据库?

Sql server 使用SSIS将两个略有不同的文件上载到数据库?,sql-server,sql-server-2012,ssis,Sql Server,Sql Server 2012,Ssis,因此,我使用SSIS(SQL Server 2012)将一些数据从dbf上传/加载到表中。基本上,我使用For循环容器读取dbf(注意:数百个dbf)并将数据放入表中。到目前为止,大部分情况都很好。但是,有一些DBF(如5或10,由另一个我无法控制的进程自动创建)的模式稍有不同(即缺少一列X,有一个新列Y)。所以我想知道是否有一种方法可以使这些列成为“可选的”,或者只是自动使它们返回NULL。或者通过某种方式让SSI检查这两个模式并“做正确的事情” 当前,当SSI运行到这些DBF中时,它会告诉我

因此,我使用SSIS(SQL Server 2012)将一些数据从dbf上传/加载到表中。基本上,我使用For循环容器读取dbf(注意:数百个dbf)并将数据放入表中。到目前为止,大部分情况都很好。但是,有一些DBF(如5或10,由另一个我无法控制的进程自动创建)的模式稍有不同(即缺少一列X,有一个新列Y)。所以我想知道是否有一种方法可以使这些列成为“可选的”,或者只是自动使它们返回NULL。或者通过某种方式让SSI检查这两个模式并“做正确的事情”


当前,当SSI运行到这些DBF中时,它会告诉我OLE DB Destination的外部列与数据源列不同步。错误。

我建议您为每种类型的架构ad创建一个数据流。如果第一个数据流失败,请尝试下一个。您可能还希望提前检查模式(通过直接打开DBF),并提前确定要运行哪个数据流,而不是等待它出错。我应该如何准确设置数据流?查找具有“正常”模式和“异常”模式的DBF文件示例。为异常模式构建单独的数据流。然后,您需要在记事本中打开这两个DBF,看看是否有任何东西可以轻松识别差异。现在,构建一些代码来识别脚本任务中的数据流,并使用该脚本任务来决定执行哪个数据流。您能验证一下,基本上有两种不同的模式吗?或者有许多不同的模式?如果有许多不同的模式,这可能是不切实际的。据我所知,目前只有两种模式。如果有一种方法可以查看我感兴趣的列并从中提取数据,那就太好了。您可以尝试使用SELECT语句作为源。这将限制从数据源输出的列。但您的驱动程序需要支持使用SELECT。顺便问一下,你用的是什么司机?您可能可以使用一些脚本或BIML来动态构建包,但对于两种不同的模式,我认为这是过于复杂化了。SSIS只是希望元数据保持一致,因为它使流程的其他部分变得更加容易。