powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Между BIGIN TRAN и COMMIT TRAN
8 сообщений из 8, страница 1 из 1
Между BIGIN TRAN и COMMIT TRAN
    #32056570
Smile
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всегда ли при возникновении ошибки между BIGIN TRAN и COMMIT TRAN выполняется откат транзакции? А то прочитал, что если вставлять в таблицу записи несколькими INSERT-ами, которые между BIGIN TRAN и COMMIT TRAN, то если возникает ошибка в одном инсерте (например, нарушение уникальности), то это не означает, что произойдет откат и остальные инсерты не выполнятся. Не выполнится только тот, на котором произошла ошибка. Есть ли еще подобные ситуации?
...
Рейтинг: 0 / 0
Между BIGIN TRAN и COMMIT TRAN
    #32056620
Фотография ziktuw
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сие прямо зависит от настройки SET XACT_ABORT
...
Рейтинг: 0 / 0
Между BIGIN TRAN и COMMIT TRAN
    #32056740
Hibernate
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
еще есть зависимость (какая?) от серъезности ошибки. Я постоянно нарываюсь на ситуацию, когда между Begin tran и commit tran возникает ошибка синтаксиса, то процедура завершается сразу, без выполнения каких-либо операторов, в том числе и операторов RallBack или Commit. И эта транзакция висит, пока не прибить коннекшн, после чего все откатывается до оператора Begin Tran
...
Рейтинг: 0 / 0
Между BIGIN TRAN и COMMIT TRAN
    #32056762
Makc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Hibernate:
В хп после каждой команды t-sql анализируй @@error и если <>0 откатывай транзакцию.
...
Рейтинг: 0 / 0
Между BIGIN TRAN и COMMIT TRAN
    #32056780
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ещё, по моему, при RallBack в триггере завершается весь батч.
А Makc правильно сказал.
...
Рейтинг: 0 / 0
Между BIGIN TRAN и COMMIT TRAN
    #32056795
Фотография ziktuw
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Hibernate

Такое может происходить только если объявление транзакции и остальное (где возникает синтаксическая ошибка) находятся в разных батчах. Отсюда простой вывод - объявление транзакций, работа в ней и её завершение должно быть в одном батче (или в одной процедуры). И буде тебе счастье.
...
Рейтинг: 0 / 0
Между BIGIN TRAN и COMMIT TRAN
    #32056965
Hibernate
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я в легком шоке - еще пол-года назад, описанная мною ситуация возникала, а сейчас специательно попробовал - воспроизвести не получилось транзакция не зависает!!!!

Хотя именно на это я списывал нерегулярные зависания транзакций... Бум искать другую причину...
...
Рейтинг: 0 / 0
Между BIGIN TRAN и COMMIT TRAN
    #32057784
Smile
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
4 Dankov

SET XACT_ABORT в 6.5 помоему нет.

А если его нет, то зачем тогда вообще использовать в этом конкретном случае begin-commit, если все равно после каждого инсерта нужно проверять на случай ошибки и делать откат
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Между BIGIN TRAN и COMMIT TRAN
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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