powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Вопрос о транзакциях...
6 сообщений из 6, страница 1 из 1
Вопрос о транзакциях...
    #32018682
Александр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вопрос к уважаемым знатокам:
Каждому ли BEGIN TRANSACTION должен соответствовать COMMIT или ROLLBACK? Думается, что каждому, чтобы не оставалось открытой транзакции... х-м... а вот у меня такой случай, что COMMIT ну никак не воспринимается. Ж8-[[ ]]

Таким образом вот этот пример, приводит к ошибке: "The COMMIT TRANSACTION request has no corresponding BEGIN TRANSACTION."

BEGIN TRANS
UPDATE ...там что-то...
COMMIT TRANS
?????

А вот так не ругается и апдейтит то что надо:
BEGIN TRANS
UPDATE ...там что-то...

Подскажите КОГДА SQL закрывает транзакцию... или она остаётся открытой????
Прошу прощение за ламерство. Новичок-с...
...
Рейтинг: 0 / 0
Вопрос о транзакциях...
    #32018686
GreenSunrise
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Rollback без указания имени откатывает все, вплоть до самой внешней транзакции. Так что если у вас есть вложенные транзакции, каждой из которых соответствует commit или rollback, то в случае rollback'а внутренней транзакции вы ожидаете отката только ее, а на самом деле откатились все. И попытка сделать commit на более внешних приведет к указанной вами ошибке.
...
Рейтинг: 0 / 0
Вопрос о транзакциях...
    #32018687
Александр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
То есть я так понял, что нужно использовать имена для транзакций.
Спасибо за совет. сейчас же и попробую...
...
Рейтинг: 0 / 0
Вопрос о транзакциях...
    #32018688
GreenSunrise
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вы еще повнимательнее почитайте статью BOL "rollback transaction". Там в разделе Remarks много чего интересного написано
...
Рейтинг: 0 / 0
Вопрос о транзакциях...
    #32018691
Фотография SergSuper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 GreenSunrise
Во-во, там еще такое написано:
When nesting transactions, transaction_name must be the name from the outermost BEGIN TRANSACTION statement.
или по русски:
При вложенных транзакциях, transaction_name должно соответствовать наиболее удаленной инструкции BEGIN TRANSACTION.

В общем, отката вложенной транзакции быть не может, откатиться всё или ничего(если имя не соответсвует). Т.е. вложенных транзакций по сути нет.
...
Рейтинг: 0 / 0
Вопрос о транзакциях...
    #32018693
GreenSunrise
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2SergSuper:

Совершенно верно, вложенных транзакций по сути нет. В моем ответе было неточно сказано "без указания имени". Имелось в виду, что можно попробовать сыграть на savepoint и сымитировать несколько более сложную логику, чем откат ВСЕХ действий в случае неудачи в середине работы.

P.S. Хотя вот до сих пор живу без savepoint и не больно-то в них нуждаюсь...
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Вопрос о транзакциях...
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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