Podle mých zkušeností jakákoli chyba zachycená při pokusu o zachycení ve spouštěči vrátí zpět celou transakci; možná budete moci použít uložení transakce. Myslím, že se musíte podívat na to, co se děje v "Nějaké další sql" a určit, zda kolem toho můžete napsat příkazy case / if, abyste chybu zastavili.
V závislosti na tom, co děláte, možná budete moci použít uložení transakce a zachyťte to v úlovku
Ve vašem kódu něco takového
SAVE TRANSACTION BeforeUpdate;
BEGIN TRY
--Some More SQL
END TRY
BEGIN CATCH
ROLLBACK TRANSACTION BeforeUpdate;
return
END CATCH