【发布时间】:2011-04-07 10:33:09
【问题描述】:
如何在不复制/粘贴的情况下在 SSIS 中重复使用任务?
例如,我想将我在事件处理程序中定义的任务用于另一个可执行文件中的一个可执行文件,而不是包中的所有可执行文件。到目前为止,除了编写一个完整的自定义组件之外,我还没有找到任何解决方案,这似乎有点矫枉过正。有什么建议吗?
【问题讨论】:
标签: sql-server-2005 ssis code-reuse reusability
如何在不复制/粘贴的情况下在 SSIS 中重复使用任务?
例如,我想将我在事件处理程序中定义的任务用于另一个可执行文件中的一个可执行文件,而不是包中的所有可执行文件。到目前为止,除了编写一个完整的自定义组件之外,我还没有找到任何解决方案,这似乎有点矫枉过正。有什么建议吗?
【问题讨论】:
标签: sql-server-2005 ssis code-reuse reusability
您是否考虑过在包级别使用事件,并过滤以仅在您的特定条件需要时触发?
例如。您可以使用 OnPostExecute 事件,只需在流程中放置一个名称以特定字符串(如“RunMyTasks”)开头的虚拟任务,然后检查 System::SourceName 以查看它是否以“RunMyTasks”开头。如果是,则分支以运行您的任务(否则分支以正常处理事件)。
您可以使用 OnVariableValueChanged 执行类似的操作 - 这可能会更好(尽管您需要对其进行测试)。使用 RaiseChangedEvent=TRUE 创建一个变量。创建脚本任务/组件来改变变量的值;最后,将您的任务集放入事件处理程序中。 查看 Jamie 帖子here 底部的范围说明。
【讨论】:
如果您可以使用第三方解决方案,请查看商业 CozyRoc SSIS+ 库。它包括增强的 Script Task Plus,它允许将脚本导出到外部文件,然后在其他包中链接和重用。
【讨论】: