Потеря соединения с базой данных выходит за рамки возможностей TRY / CATCH в T-SQL.
У вас есть несколько вариантов, но это зависит от того, что приемлемо (с точки зрения дизайна) в ваших обстоятельствах. Не будучи осведомленным об этой информации, трудно делать предложения.
Сказав это, одной идеей будет заключить все в "родительскую" транзакцию. Если эта транзакция откатывается (что происходит в соответствии с дизайном, если вы теряете связь), то никакие изменения в этой сессии не сохраняются в базе данных.