OnVariableValue的SSIS日志记录使用变量值更改



我正在尝试记录使用 BIML 生成的 SSIS 中变量值的所有更改。 我设法创建了一个事件处理程序,每次变量更改其值时都会写入。 当我记录时,我使用一个参数,我将其值设置为"系统变量值"。我将这个参数(带有变量名称和包名称的切换器)传递给 StorageProc,并在日志表中写入。 我的问题是,经常(但并非总是)该参数似乎没有任何价值。我在数据库日志表中看到一个新行,因此这意味着 evnt 已正确提出和处理,但参数似乎为空。 最奇怪的是,有时值被正确记录,但并非总是如此,不是针对相同的变量,不是针对相同的包,而是以非常随机的方式。

几个变量几乎可以同时更改值(数据库上的一些争用)这一事实会是一个问题吗?我对此表示怀疑,因为行本身是写在数据库中的。我什至尝试将"新值 = " + ? 也就是说,将参数值追加到固定字符串。固定部分写正确,但是..没有值。 更改值的变量的名称始终正确写入。

知道这可能是由于什么原因吗?

作为一种解决方法,我尝试使用 SSIS 的现成日志记录工具,但在这种情况下,在 SYSSSISLOG 表的消息列中,我只能读取更改的变量的名称,而不是其新值。

谢谢

您可以使用Event Handler来执行此操作。转到Variables页面,转到Variable Grid Options,选中Raise event when variable value changes,这些变量应该还有一个选项,即Raise Change Event,默认为False,更改为True对于您需要跟踪更改的变量(日志)。并将日志记录任务放入Event handler

更新新行可能是参数的值已被重置,并且该值很可能等于blankwhitespace,但仍然被识别为值更改。

如果您不太确定何时发生,则可以为某个任务设置Breakpoint并添加watch window以查看值如何变化或该值是否会在过程中达到blank

最新更新