Според моя опит всяка грешка, уловена при try catch в тригер, ще върне цялата транзакция; може да можете да използвате транзакция за запазване. Мисля, че трябва да погледнете какво се случва в „Още sql“ и да определите дали можете да пишете оператори case / if около него, за да спрете грешката.
Това, което може да можете да направите в зависимост от това, което правите, е да използвате запазване на транзакция и заснемете това в catch
Във вашия код нещо подобно
SAVE TRANSACTION BeforeUpdate;
BEGIN TRY
--Some More SQL
END TRY
BEGIN CATCH
ROLLBACK TRANSACTION BeforeUpdate;
return
END CATCH