Variables OnVariableValues的SSIS日志记录随变量值更改

Variables OnVariableValues的SSIS日志记录随变量值更改,variables,logging,ssis,Variables,Logging,Ssis,我正在尝试记录使用BIML生成的SSI中变量值的所有更改。 我设法创建了一个事件处理程序,每当变量改变其值时,它都会写入。 当我记录时,我使用一个参数,其值设置为“System.VariableValue”。我将这个参数(与variableName和PackageName一起)传递给StoredProc,然后写入日志表。 我的问题是,通常(但并非总是)参数似乎没有任何值。我在DB Log表中看到一行新行,这意味着evnt被正确地引发和处理,但参数似乎是空的。 最奇怪的是,有时值被正确记录,但并不

我正在尝试记录使用BIML生成的SSI中变量值的所有更改。 我设法创建了一个事件处理程序,每当变量改变其值时,它都会写入。 当我记录时,我使用一个参数,其值设置为“System.VariableValue”。我将这个参数(与variableName和PackageName一起)传递给StoredProc,然后写入日志表。 我的问题是,通常(但并非总是)参数似乎没有任何值。我在DB Log表中看到一行新行,这意味着evnt被正确地引发和处理,但参数似乎是空的。 最奇怪的是,有时值被正确记录,但并不总是正确记录,不是针对相同的变量,不是针对相同的包,而是以一种非常随机的方式记录

多个变量几乎可以同时更改值(数据库上的一些争用),这会是一个问题吗?我对此表示怀疑,因为行本身会写入DB。我甚至试着写,作为一个值,像'newvalue='+?也就是说,将参数值附加到固定字符串。固定部分写入正确,但。。没有价值。 更改值的变量名称始终正确写入

你知道这是什么原因吗

作为一种解决方法,我尝试使用现成的SSIS日志记录功能,但在本例中,在SYSSSISLOG表的message列中,我只能读取已更改的变量的名称,而不是它的新值


thankx

您可以使用
事件处理程序来执行此操作。转到
变量
页面,转到
变量网格选项
,勾选
变量值更改时引发事件
,这些变量应该还有一个选项,即
引发更改事件
,默认为
,对于需要跟踪更改(日志)的变量,请更改为
True
。并将日志记录任务放入
事件处理程序

更新 新行可能是已重置参数的值,该值很可能等于
空白
空白
,但仍被视为值更改


如果你不太确定发生了什么,你可以设置一个<代码>断点<代码>到某个任务,并添加<代码>监视窗口< /代码>以查看值的变化或值是否会在过程的中间< <代码>空白>代码> >谢谢你的时间。正如我在问题中所写的,我已经做到了。它正在记录,但没有将变量的新值传递给handler。到目前为止,我不理解这个问题,但至少我发现可以在SSI中使用断点和监视。非常感谢。