Z mojego doświadczenia wynika, że każdy błąd złapany w próbie złapania w wyzwalaczu spowoduje wycofanie całej transakcji; możesz być w stanie skorzystać z transakcji zapisu. Myślę, że musisz przyjrzeć się temu, co dzieje się w „Nieco więcej sql” i określić, czy możesz napisać wokół niego instrukcje case / if, aby zatrzymać błąd.
To, co możesz zrobić w zależności od tego, co robisz, to użyć zapisz transakcję i uchwyć to w haczyku
W twoim kodzie coś takiego
SAVE TRANSACTION BeforeUpdate;
BEGIN TRY
--Some More SQL
END TRY
BEGIN CATCH
ROLLBACK TRANSACTION BeforeUpdate;
return
END CATCH