|
Сохранение Insert`а после транзакции
|
|||
---|---|---|---|
#18+
Добрый день! Подскажите, как правильно организовать следующее: У меня процедура (транзакционная) выполняет по шагам много действий (других процедур). В этих шагах могут возникнуть ошибки (как критичные, так и идеологические), в следствии которых я вызываю rollback. Только вот охота сохранять протокол который был высчитан внутри транзакции. Т.е. это обычный Select, который самое простое было бы Insert`нуть в протокол таблицу, но ведь транзакция это действие откатит. Как поступать в таком случае? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2014, 17:41 |
|
Сохранение Insert`а после транзакции
|
|||
---|---|---|---|
#18+
Wrun, сохраняете данные в локальную табличную переменную, которую вставляете в лог уже после ролбэка/коммита ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2014, 17:49 |
|
Сохранение Insert`а после транзакции
|
|||
---|---|---|---|
#18+
Wrun, В MSSQL нет автономных транзакций, поэтому вариантов два Первый, как уже сказали, использовать табличные переменные. Второе, сделать логирование через CLR, в котором можно использовать независимые транзакции. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2014, 18:19 |
|
Сохранение Insert`а после транзакции
|
|||
---|---|---|---|
#18+
msLexWrun, В MSSQL нет автономных транзакций, поэтому вариантов два Первый, как уже сказали, использовать табличные переменные. Второе, сделать логирование через CLR, в котором можно использовать независимые транзакции. Третий вариант использовать SSIS, где уже есть логированние ошибок и отчёты для их просмотра. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2014, 18:46 |
|
Сохранение Insert`а после транзакции
|
|||
---|---|---|---|
#18+
a_voroninmsLexWrun, В MSSQL нет автономных транзакций, поэтому вариантов два Первый, как уже сказали, использовать табличные переменные. Второе, сделать логирование через CLR, в котором можно использовать независимые транзакции. Третий вариант использовать SSIS, где уже есть логированние ошибок и отчёты для их просмотра. Какой SSIS? Пользователь в приложении жмакнул на кнопку "провести документ", хочется пологировать какие операции и сколько при этом выполнялись даже в случае ошибки. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2014, 18:58 |
|
Сохранение Insert`а после транзакции
|
|||
---|---|---|---|
#18+
RAISERROR ... WITH LOG xp_logevent ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2014, 18:59 |
|
Сохранение Insert`а после транзакции
|
|||
---|---|---|---|
#18+
ShakillWrun, сохраняете данные в локальную табличную переменную, которую вставляете в лог уже после ролбэка/коммита Т.е. Переменные не очищаются транзакцией (извиняюсь за лень - не тестировал, нет компа под рукой...) ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2014, 19:15 |
|
Сохранение Insert`а после транзакции
|
|||
---|---|---|---|
#18+
WrunShakillWrun, сохраняете данные в локальную табличную переменную, которую вставляете в лог уже после ролбэка/коммита Т.е. Переменные не очищаются транзакцией (извиняюсь за лень - не тестировал, нет компа под рукой...)Да ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2014, 20:20 |
|
|
start [/forum/topic.php?fid=46&msg=38773651&tid=1700405]: |
0ms |
get settings: |
8ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
159ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
53ms |
get tp. blocked users: |
2ms |
others: | 14ms |
total: | 272ms |
0 / 0 |