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