Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server SSIS如何将新添加的源列自动映射到所有后续转换和目标_Sql Server_Ssis - Fatal编程技术网

Sql server SSIS如何将新添加的源列自动映射到所有后续转换和目标

Sql server SSIS如何将新添加的源列自动映射到所有后续转换和目标,sql-server,ssis,Sql Server,Ssis,我在SSIS中有一个ETL项目,它在Firebird数据库中收集一些数据,进行一些转换,然后将它们插入SQL Server数据库中的维度模型中。 我必须在模型中进行更改,添加一些列,并且必须在整个项目中从源代码手动将它们映射到所有组件中。 我的问题是:有没有办法自动映射新添加的列,而不必在所有后续转换组件中手动检查它们 谢谢,我们使用BIML以及存储在数据库中的一些元数据来生成SSIS包。如果引入了新的源属性,我们只需将该属性添加到元数据中并重新生成包。这种方法的好处是,您可以一次性重新生成多个

我在SSIS中有一个ETL项目,它在Firebird数据库中收集一些数据,进行一些转换,然后将它们插入SQL Server数据库中的维度模型中。 我必须在模型中进行更改,添加一些列,并且必须在整个项目中从源代码手动将它们映射到所有组件中。 我的问题是:有没有办法自动映射新添加的列,而不必在所有后续转换组件中手动检查它们


谢谢,

我们使用BIML以及存储在数据库中的一些元数据来生成SSIS包。如果引入了新的源属性,我们只需将该属性添加到元数据中并重新生成包。这种方法的好处是,您可以一次性重新生成多个包

使用BIML生成SSIS包依赖于使用非常严格的可重用模式的解决方案


马吕斯

据我所知,没有一个是这样的——这是有道理的。任何新添加的列都可以是任何数据类型,用于任何用途。不能保证将需要给定的新列,也不能保证新添加的列只用于第一步中的条件检查。它需要手动添加到任何地方,因为这就是在后续的每个步骤中通知包需要它的原因。我采用的方法是使用SQLServer管理对象(SMO)读取表列信息,然后生成包来提取、转换和加载数据。编写代码生成器需要很好的准备工作,但在为数百个表开发包时,这是有意义的。您可以使用代码生成来完成这项工作,但这只有在您必须执行数百次的情况下才是有效的。