【发布时间】:2021-08-27 03:15:41
【问题描述】:
SSIS 事件处理程序 onerrorfail 或 ontaskfailed 都未能捕获最近的错误消息。 情况 - 1.父包调用子包。 2.Parent 没有错误,但子包有错误,我正在尝试捕获这些错误。
Select TOP 1
A.package_name
,A.[Message]
FROM SSISDB.[catalog].[Event_messages] A
Where A.execution_path like '%Template%'
AND A.Event_name = 'OnError'
Order by A.Message_time desc
带有 OnError(事件处理程序)的 SQL 之上 - 检索以前的错误记录。 以上 SQL 与 onTaskfailed(event handler) - 检索以前的错误记录和最近的错误记录,因此电子邮件被触发两次。 为了停止多封电子邮件,我输入了 Counter 变量。 计数器变量解决了电子邮件问题,但它给出了以前的错误记录而不是最近的错误。准确地说,有一个错误,我不知道为什么它会给出过去的错误。尽管我必须处理多封电子邮件,但我也使用了日期过滤器,除了上面的 SQL 之外什么都没有。
上面的 SQL 有什么问题(基本和直截了当),为什么获取最近的记录会出现这样的问题?更好的处理方式?
【问题讨论】:
-
请有任何建议
-
如果错误没有被记录在首位,您的 SQL 将不会检索任何记录的错误消息...
-
记录了错误并且它确实检索了唯一的问题是,因为错误处理事件多次触发,所以它获取过去的错误消息以及最近的错误消息。我尝试了几种不同的 sql 消息来获取最近的错误,但没有任何效果。
-
能否提供 Event_messages 表中的数据样本?
-
提供您的样本输入和预期输出