CREATE TRIGGER [dbo].[ILC_BGTaskHistoryAfterUpdate] ON [dbo].[BGTaskHistory]
AFTER UPDATE
AS
DECLARE @CompletionStatusBefore AS VARCHAR(100)
DECLARE @CompletionStatusAfter AS VARCHAR(100)
DECLARE @AlertSubjectParm1 AS VARCHAR(max)
DECLARE @AlertMsgParm1 AS VARCHAR(max)
SELECT @CompletionStatusAfter = ISNULL(CAST(CompletionStatus AS VARCHAR(100)), 'EMPTY')
FROM inserted
IF (@CompletionStatusAfter <> '0')
BEGIN
SELECT @CompletionStatusBefore = ISNULL(CAST(CompletionStatus AS VARCHAR(100)), 'EMPTY')
FROM deleted
IF (@CompletionStatusBefore <> @CompletionStatusAfter)
BEGIN
SELECT @AlertSubjectParm1 = AlertSubjectParm1
,@AlertMsgParm1 = AlertMsgParm1
FROM (
SELECT 'Background Task ' + TaskName + ' has failed' AS AlertSubjectParm1
,'Background Task ' + ISNULL(CAST(TaskNumber AS VARCHAR(100)), '') + ' ' + ISNULL(TaskName, '') + ', initiated by user ' + ISNULL(RequestingUser, '') + ' failed at ' + ISNULL(CAST(MONTH(CompletionDate) AS VARCHAR(2)) + '-' + CAST(DAY(CompletionDate) AS VARCHAR(2)) + '-' + CAST(YEAR(CompletionDate) AS VARCHAR(4)) + ' ' + CAST(DATEPART(hh, CompletionDate) AS VARCHAR(2)) + ':' + CAST(DATEPART(MINUTE, CompletionDate) AS VARCHAR(2)), '') + ', with a Completion Status of ' + ISNULL(CAST(CompletionStatus AS VARCHAR(100)), '') + ' and the error message: ' + CHAR(13) + CHAR(10) + CHAR(13) + CHAR(10) + ISNULL(TaskErrorMsg, '') AS AlertMsgParm1
FROM inserted
) NotifyPublicationSubscriber
EXEC NotifyPublicationSubscribersSp 'ILC_BackgroundTaskFailure'
,'D=Text0'
,'E=Msg'
,''
,''
,@AlertSubjectParm1
,''
,''
,''
,''
,''
,''
,''
,''
,''
,''
,''
,''
,''
,''
,@AlertMsgParm1
,''
,''
,''
,''
,''
,''
,''
,''
,''
,''
,''
,''
,''
,''
END
END
RETURN
GO
EXEC sp_settriggerorder @triggername = N'[dbo].[ILC_BGTaskHistoryAfterUpdate]'
,@order = N'Last'
,@stmttype = N'UPDATE'
Comments