Как сделать чтобы при присваивании значений переменной в блоке try, это значение оставалось при вылете в catch?
В блоке Try у меня огромный запрос на добавление данных в таблицу(из других таблиц), после чего я пишу
set @insertingRows = @@ROWCOUNT
И после, если произошла ошибка в добавлении и вылетело в catch, мне необходимо вывести сколько строк было затронуто (как раз для этого я ввела переменную).
Если это можно сделать по другому, то как?
begin tran
begin try
insert into (...)
set @insertingRows = @@ROWCOUNT
insert into tpLog(logMsg) values ('Inserting: '+@insertingRows)
commit
end try
begin catch
insert into tpLog(logMsg) values
('ALL: '+@allRows+ ' | Error inserting: '+@insertingRows+
' | Error line: '+ERROR_LINE()+ ' | Error message: '+ERROR_MESSAGE());
throw;
rollback
end catch
Источник: Stack Overflow на русском