请帮助我, 我正在尝试获取有关SSIS错误的信息 我使用事件处理程序。我尝试使用系统变量错误描述捕获错误 然后我将错误插入表中,但是此系统变量包含任务错误,我想在表上插入错误行而不是任务执行错误,因为它更具可读性
当我执行结果时,我有两行错误:
一个错误:XXX
和其他[执行任务]错误:XXX
信息:
我正在使用事件处理程序,并且在事件上我有一个任务更新表设置comment =?其中id =?
非常感谢您
答案 0 :(得分:2)
引起问题的是您的事件处理程序SQL:
update table set comment = ? where id = ?
您正在用第二个错误消息覆盖第一个错误消息。
要同时捕获它们,请使用INSERT
。
修改
如果只想插入第一条错误消息,则可以向SSIS包中添加一个Boolean
变量,例如'ErrorSet',该变量在开始时设置为false
。包装。然后,您可以将其传递给错误处理程序,并执行类似的操作(其中第一个?
是'ErrorSet'):
IF ? = 0
update table set comment = ? where id = ?
;
SELECT CAST(1 AS bit) ErrorSet
然后,将“ ErrorSet”结果写回到SSIS包变量中,这将防止进一步的更新发生。
您还可以通过使用不同的变量或将相同的变量重置回false
来将其范围限制在包的不同区域。
答案 1 :(得分:1)
来自@ChrisMack的答案:
引起问题的是您的事件处理程序SQL:
update table set comment = ? where id = ?
您正在用第二个错误消息覆盖第一个错误消息。
我添加了一个表达式任务来强制将值直接放入表中。