在Job中指定SSIS目录包执行的错误消息

时间:2016-09-08 12:34:34

标签: sql-server ssis sql-agent-job

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

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

无论如何都要避免在作业的历史记录中显示该消息,而是让自定义消息显示在其他任何内容中?

1 个答案:

答案 0 :(得分:1)

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