Работаю на большом существующем проекте. Во всех процедурах, расчитывающих что-то из базы, в конце стоит:
SELECT @trancount = @@TRANCOUNT
--куча расчетного кода
Success:
IF @trancount < @@TRANCOUNT
COMMIT TRAN
RETURN 0
Failure:
IF @trancount < @@TRANCOUNT
ROLLBACK TRAN
RETURN -1
|
|
Процедура ничего не меняет. В начале сохраняется уровень, а в конце проверяется. Зачем они так делают?