Как сделать чтобы при присваивании значений переменной в блоке try, это значение оставалось при вылете в catch?

Рейтинг: 0Ответов: 0Опубликовано: 26.06.2023

В блоке 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

Ответы

Ответов пока нет.