我注意到在SSIS包配置中,当选择要添加到配置文件的属性时,通常会列出该属性的多个版本。例如,我可以通过以下路径添加包变量属性:
套餐的>变量 - > VariableName->性能
但是我也可以通过这些路径访问同一个属性:
套餐的> Executables->变量 - > VariableName->性能
Package-> Connection Managers-> Connection-> Variables-> VariableName-> Property
第一个问题是这是什么原因?其次,将属性添加到配置文件中最合适的选项是什么?
答案 0 :(得分:1)
原因是封装/范围,一切都是可配置的。
如果在包级别范围创建变量,则添加到该包的所有内容都可以访问和使用它。添加一个序列容器,在其中添加一个Foreach循环,在其中,执行SQL任务到数据流到文件系统任务。您可以在每个对象上创建一个变量。 thing 中包含的所有内容都可以看到这些变量。我的Foreach循环定义并填充CurrentFileName以及Execute SQL Task(用于记录我正在处理的文件),数据流使用正确的源文件并使用文件系统任务将其推入存档。 可能不需要该变量在该范围之外可见。我将创建一个Variable not-in-package-scope的特定场景是我是在并行加载东西 - 比如Dimension加载。我有3个Foreach枚举器通过维度列表进行处理。我很懒,并且在每个Enumerator中都有相同的代码,只是使用不同的源列表。
除了以外,您通常不希望在包范围之外的任何范围创建SSIS变量。否则,您可以花太多时间单击寻找变量的对象(包浏览器选项卡在这种情况下可能会有所帮助)
我对配置的经验法则只是选择Value或ConnectionString(取决于它是变量还是连接管理器)并且只在根级别选择它。
最后,如果你没有BIDS Helper,那么VS的免费添加会使SSIS / SSAS / SSRS开发变得更加痛苦。