Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Необходимо реализовать логику аналогичную Autonomous Transactions в ORACLE  [new]
Andy96
Guest
Задача, есть основная ветка кода и есть запись в лог. В случае отката транзакции есть необходимость сохранить записи в логе. Т.е. откатить надо только основную транзакцию. Есть варианты кроме написания Extended процедуры?
25 авг 03, 14:13    [313642]     Ответить | Цитировать Сообщить модератору
 Re: Необходимо реализовать логику аналогичную Autonomous Transactions в ORACLE  [new]
Павел Воронцов
Member

Откуда: Новосибирск
Сообщений: 2386
Блог
EXEC xp_cmdshell 'isql blahblahblah'
25 авг 03, 14:38    [313712]     Ответить | Цитировать Сообщить модератору
 Re: Необходимо реализовать логику аналогичную Autonomous Transactions в ORACLE  [new]
Andy96
Guest
Это да, но проблема в том, что это очень медленно, по сравнению с основной веткой кода такие накладные расходы просто не приемлемы. Всё равно спасибо.
25 авг 03, 14:44    [313734]     Ответить | Цитировать Сообщить модератору
 Re: Необходимо реализовать логику аналогичную Autonomous Transactions в ORACLE  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31604
Быстрее, чем xp_cmdshell будет работа с СОМ, но всё-равно медленно.
25 авг 03, 14:52    [313753]     Ответить | Цитировать Сообщить модератору
 Re: Необходимо реализовать логику аналогичную Autonomous Transactions в ORACLE  [new]
ziktuw
Member

Откуда:
Сообщений: 3552
Как вариант, внутри транзакции писать данные в таблицу-переменную, а после отката использовать данные из этой таблицы. Операции с таблицами-переменными не откатываются.
25 авг 03, 17:01    [314088]     Ответить | Цитировать Сообщить модератору
 Re: Необходимо реализовать логику аналогичную Autonomous Transactions в ORACLE  [new]
Andy96
Guest
С переменной тоже интересный вариант, но переменную типа таблица нельзя передать в процедуру (я правда не на 100% уверен насчёт этого, но исходя из того, что присваивать значения переменным типа таблица нельзя, и параметрами в процедуру никак не передашь).

А если нельзя передать в процедуру, то и программировать выходит надо всё в одной большой хранимой процедуре, в которой в начале такую таблицу создавать, а в конце из неё данные в постоянную таблицу помещать. Выходит тоже не очень подходит :(.
29 авг 03, 17:19    [320887]     Ответить | Цитировать Сообщить модератору
 Re: Необходимо реализовать логику аналогичную Autonomous Transactions в ORACLE  [new]
aag
Member

Откуда: Москва
Сообщений: 1955
Выходит тоже не очень подходит :(.
Ну почему же, именно так и подходит. Хотя конструкция, согласен, тяжеловата.
29 авг 03, 17:30    [320905]     Ответить | Цитировать Сообщить модератору
 Re: Необходимо реализовать логику аналогичную Autonomous Transactions в ORACLE  [new]
Alex Antonoff
Member

Откуда: Из лесу вестимо
Сообщений: 1251
А почему нельзя ыделать rollback и сразу добавить запись в лог. У меня так и работает.
29 авг 03, 19:13    [320986]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить