是否可以从 SQL Server 代理作业的另一步骤中的一个步骤捕获错误消息?
我有以下情况:
Step 1: Transact-SQL script (TSQL)
-- On Success action: Go to step 2
-- On Failure action: Go to step 3
Step 2: Transact-SQL script (Send success email)
Step 3: Transact-SQL script (Send failure email)
我需要的是,如果step 1
失败,我需要从step 1
in捕获错误消息step 3
并在电子邮件通知中发送相同的消息。
我尝试在 Job 步骤中使用以下令牌,但没有成功。
declare @err_msg as nvarchar(4000) = $(ESCAPE_SQUOTE(A-MSG))
我认为您最好的选择是
msdb.dbo.sysjobhistory
在工作步骤中查询表格以获取您正在寻找的信息。这是一个示例查询,它将让您为给定的作业运行所有操作(从这两篇 MSSQLTips 文章 [ ref1 ]、[ ref2 ] 混合在一起)。显然,您需要调整它以适合您的方式,但这应该为您提供足够的方向来获得您想要的东西。
您使用的是 SSIS 还是您的工作是在运行 TSQL 脚本?您的问题询问有关 SSIS,但您的步骤暗示 TSQL?
如果它是一个脚本,我会认为一个简单的 TRY CATCH 块会是一种更简单的方法?