SSIS 事件处理程序
SSIS event handler
我需要一些帮助,
我正在尝试获取有关 SSIS 错误的信息
我使用事件处理程序。我尝试使用系统变量错误描述来捕获错误
然后我在 table 上插入错误,但是这个系统变量包含任务错误,我想在 table 上插入错误行而不是任务执行错误,因为它更具可读性
当我查看执行结果时出现两行错误:
一个错误:XXX
和其他 [执行任务] 错误:XXX
信息:
- 我无法使用包顶层树上的处理程序,因为我还有其他错误需要管理。
- 我在同一个包的其他容器上使用相同的机制
- 我从控制流中捕获错误而不是数据流
我正在使用事件处理程序,并且在事件上我有一个任务更新 table set comment =? id = 在哪里?
非常感谢
导致问题的是您的事件处理程序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
。
将其范围限定到包的不同区域
来自@ChrisMack 的回答:
It's your event handler SQL that is causing the problem:
update table set comment = ? where id = ?
You are overwriting the first error message with the second one.
我添加了一个表达式任务来强制将值直接放在table。
我需要一些帮助, 我正在尝试获取有关 SSIS 错误的信息 我使用事件处理程序。我尝试使用系统变量错误描述来捕获错误 然后我在 table 上插入错误,但是这个系统变量包含任务错误,我想在 table 上插入错误行而不是任务执行错误,因为它更具可读性
当我查看执行结果时出现两行错误:
一个错误:XXX
和其他 [执行任务] 错误:XXX
信息:
- 我无法使用包顶层树上的处理程序,因为我还有其他错误需要管理。
- 我在同一个包的其他容器上使用相同的机制
- 我从控制流中捕获错误而不是数据流
我正在使用事件处理程序,并且在事件上我有一个任务更新 table set comment =? id = 在哪里?
非常感谢
导致问题的是您的事件处理程序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
。
来自@ChrisMack 的回答:
It's your event handler SQL that is causing the problem:
update table set comment = ? where id = ?
You are overwriting the first error message with the second one.
我添加了一个表达式任务来强制将值直接放在table。