Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Вопрос о транзакциях...
|
|||
|---|---|---|---|
|
#18+
Вопрос к уважаемым знатокам: Каждому ли BEGIN TRANSACTION должен соответствовать COMMIT или ROLLBACK? Думается, что каждому, чтобы не оставалось открытой транзакции... х-м... а вот у меня такой случай, что COMMIT ну никак не воспринимается. Ж8-[[ ]] Таким образом вот этот пример, приводит к ошибке: "The COMMIT TRANSACTION request has no corresponding BEGIN TRANSACTION." BEGIN TRANS UPDATE ...там что-то... COMMIT TRANS ????? А вот так не ругается и апдейтит то что надо: BEGIN TRANS UPDATE ...там что-то... Подскажите КОГДА SQL закрывает транзакцию... или она остаётся открытой???? Прошу прощение за ламерство. Новичок-с... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2001, 09:57 |
|
||
|
Вопрос о транзакциях...
|
|||
|---|---|---|---|
|
#18+
Rollback без указания имени откатывает все, вплоть до самой внешней транзакции. Так что если у вас есть вложенные транзакции, каждой из которых соответствует commit или rollback, то в случае rollback'а внутренней транзакции вы ожидаете отката только ее, а на самом деле откатились все. И попытка сделать commit на более внешних приведет к указанной вами ошибке. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2001, 10:32 |
|
||
|
Вопрос о транзакциях...
|
|||
|---|---|---|---|
|
#18+
То есть я так понял, что нужно использовать имена для транзакций. Спасибо за совет. сейчас же и попробую... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2001, 10:48 |
|
||
|
Вопрос о транзакциях...
|
|||
|---|---|---|---|
|
#18+
Вы еще повнимательнее почитайте статью BOL "rollback transaction". Там в разделе Remarks много чего интересного написано ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2001, 10:57 |
|
||
|
Вопрос о транзакциях...
|
|||
|---|---|---|---|
|
#18+
2 GreenSunrise Во-во, там еще такое написано: When nesting transactions, transaction_name must be the name from the outermost BEGIN TRANSACTION statement. или по русски: При вложенных транзакциях, transaction_name должно соответствовать наиболее удаленной инструкции BEGIN TRANSACTION. В общем, отката вложенной транзакции быть не может, откатиться всё или ничего(если имя не соответсвует). Т.е. вложенных транзакций по сути нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2001, 11:37 |
|
||
|
Вопрос о транзакциях...
|
|||
|---|---|---|---|
|
#18+
2SergSuper: Совершенно верно, вложенных транзакций по сути нет. В моем ответе было неточно сказано "без указания имени". Имелось в виду, что можно попробовать сыграть на savepoint и сымитировать несколько более сложную логику, чем откат ВСЕХ действий в случае неудачи в середине работы. P.S. Хотя вот до сих пор живу без savepoint и не больно-то в них нуждаюсь... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2001, 12:09 |
|
||
|
|

start [/forum/topic.php?fid=46&msg=32018691&tid=1824678]: |
0ms |
get settings: |
5ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
53ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
43ms |
get tp. blocked users: |
1ms |
| others: | 207ms |
| total: | 344ms |

| 0 / 0 |
