powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Сохранение Insert`а после транзакции
8 сообщений из 8, страница 1 из 1
Сохранение Insert`а после транзакции
    #38773606
Wrun
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!

Подскажите, как правильно организовать следующее:

У меня процедура (транзакционная) выполняет по шагам много действий (других процедур).
В этих шагах могут возникнуть ошибки (как критичные, так и идеологические), в следствии которых я вызываю rollback.
Только вот охота сохранять протокол который был высчитан внутри транзакции.
Т.е. это обычный Select, который самое простое было бы Insert`нуть в протокол таблицу, но ведь транзакция это действие откатит.

Как поступать в таком случае?
...
Рейтинг: 0 / 0
Сохранение Insert`а после транзакции
    #38773621
Фотография Shakill
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Wrun, сохраняете данные в локальную табличную переменную, которую вставляете в лог уже после ролбэка/коммита
...
Рейтинг: 0 / 0
Сохранение Insert`а после транзакции
    #38773651
msLex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Wrun,

В MSSQL нет автономных транзакций, поэтому вариантов два
Первый, как уже сказали, использовать табличные переменные.
Второе, сделать логирование через CLR, в котором можно использовать независимые транзакции.
...
Рейтинг: 0 / 0
Сохранение Insert`а после транзакции
    #38773687
Фотография a_voronin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
msLexWrun,

В MSSQL нет автономных транзакций, поэтому вариантов два
Первый, как уже сказали, использовать табличные переменные.
Второе, сделать логирование через CLR, в котором можно использовать независимые транзакции.

Третий вариант использовать SSIS, где уже есть логированние ошибок и отчёты для их просмотра.
...
Рейтинг: 0 / 0
Сохранение Insert`а после транзакции
    #38773703
msLex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
a_voroninmsLexWrun,

В MSSQL нет автономных транзакций, поэтому вариантов два
Первый, как уже сказали, использовать табличные переменные.
Второе, сделать логирование через CLR, в котором можно использовать независимые транзакции.

Третий вариант использовать SSIS, где уже есть логированние ошибок и отчёты для их просмотра.
Какой SSIS?
Пользователь в приложении жмакнул на кнопку "провести документ", хочется пологировать какие операции и сколько при этом выполнялись даже в случае ошибки.
...
Рейтинг: 0 / 0
Сохранение Insert`а после транзакции
    #38773705
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RAISERROR ... WITH LOG
xp_logevent
...
Рейтинг: 0 / 0
Сохранение Insert`а после транзакции
    #38773723
Wrun
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ShakillWrun, сохраняете данные в локальную табличную переменную, которую вставляете в лог уже после ролбэка/коммита

Т.е. Переменные не очищаются транзакцией (извиняюсь за лень - не тестировал, нет компа под рукой...)
...
Рейтинг: 0 / 0
Сохранение Insert`а после транзакции
    #38773757
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WrunShakillWrun, сохраняете данные в локальную табличную переменную, которую вставляете в лог уже после ролбэка/коммита
Т.е. Переменные не очищаются транзакцией (извиняюсь за лень - не тестировал, нет компа под рукой...)Да
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Сохранение Insert`а после транзакции
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]