Я пытаюсь поставить инструкцию try-catch внутри триггера с помощью Microsoft Server 2005.
BEGIN TRANSACTION
BEGIN TRY
    --Some More SQL
    COMMIT TRANSACTION
END TRY
BEGIN CATCH
    IF (XACT_STATE()) = -1
    BEGIN
        ROLLBACK TRANSACTION;
    END;
END CATCH
Проблема заключается в том, что я не хочу, чтобы триггер терпел неудачу, если что-то попало в блок try-catch. На данный момент я получаю сообщение об ошибке "Транзакция завершилась триггером. Партия была прервана". если транзакция не удалась. Как я могу заставить триггер терпеть неудачу изящно?
Кроме того, если я удалю транзакцию, я получаю сообщение об ошибке "Транзакция, обреченная на триггер. Пакет был прерван".
BEGIN TRY
    --Some More SQL
END TRY
BEGIN CATCH
    return
END CATCH
Есть ли способ обойти это?
