在作业中指定来自 SSIS 目录包执行的错误消息

Specifying error message from SSIS Catalog Package execution in Job

我有以下问题。我有一份工作在其中一个步骤中执行了 SSIS 目录包。当其中一个步骤引发错误时,我在另一个步骤中处理错误,我查询 msdb.dbo.sysjobhistory 和列 message,其中包含该步骤的错误。通常,所有其他步骤通过捕获错误并使用 RAISERROR 和要求指定的自定义消息来处理错误。

问题是,当包失败时,即使我在其中捕获包错误并使用带有 RAISERROR 语句的 SQL 任务,当我查询 msdb.dbo.sysjobhistory table,我从 SSIS 目录中找到一条通用消息,说我应该查看项目报告以了解更多详细信息(在那里,我找到了自定义消息)。

有没有办法避免该消息出现在作业的历史记录中,而不是让自定义消息只出现?

SQL 启动 SSIS 程序包的作业仅使用从作业定义屏幕翻译的参数调用 DTSExec。此存根错误消息是由 DTExec 生成的,您几乎没有机会更改它。
您可以做些什么 - 对于 SSIS 包执行步骤解析此消息,提取 Execution ID: <ExecID>。然后使用此执行 ID - 转到 SSISDB.catalog.operation_messages,按 operation_id = ExecID 过滤它,并查找具有 message_type IN (120, 100) 的行。 message 字段的内容包含您的错误或取消消息。