2014-10-03 79 views
0

我实现一个自定义的审计框架,记录ETL事件,如开始,结束,错误insertrows等SSIS SQL任务列表的结果集项目参数

除了在包级别的日志,我在执行“会话记录”的地方执行一系列程序包,即执行多个程序包的控制器程序包,这是一个会话。为了跟踪“会话”,存储过程总是返回一个SessionLogID。

我希望我可以将这个结果集映射到一个项目参数,否则,我将不得不将其保存到用户var,然后通过参数在包之间传递它。这意味着每个包都会有一个名为SessionLogID的包参数和用户变量。如果我不需要,我不想这样做。

打开其他建议。

感谢, 亚当

回答

0

参数不能在运行时更改。它们是一种一次交易,而变量随时可能发生变化。您可以在父包中设置变量一次,并使用参数将变量映射到子包。

+0

这是可以理解的,除了事实上,据我所知,SSIS没有全局变量,可以通过项目中的几个包访问(如果这不是真的,请让我知道!)。不幸的是,你的建议不适用于我的问题,因为记录的性质,有独特的父和子包,父包,或者更确切地说,会话的“启动”仅仅是首先执行的任何包。因此,每个包都需要一个可配置参数,然后需要一个变量来输出到SQL任务的结果集。 – adamcunnington 2014-10-03 13:02:59

+0

为什么不创建自己的“全局变量”,方法是将会话ID存储在数据库中,并通过查询数据来启动每个包? – 2014-10-03 13:30:48