|
|
|
Между BIGIN TRAN и COMMIT TRAN
|
|||
|---|---|---|---|
|
#18+
Всегда ли при возникновении ошибки между BIGIN TRAN и COMMIT TRAN выполняется откат транзакции? А то прочитал, что если вставлять в таблицу записи несколькими INSERT-ами, которые между BIGIN TRAN и COMMIT TRAN, то если возникает ошибка в одном инсерте (например, нарушение уникальности), то это не означает, что произойдет откат и остальные инсерты не выполнятся. Не выполнится только тот, на котором произошла ошибка. Есть ли еще подобные ситуации? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2002, 00:28:11 |
|
||
|
Между BIGIN TRAN и COMMIT TRAN
|
|||
|---|---|---|---|
|
#18+
Сие прямо зависит от настройки SET XACT_ABORT ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2002, 10:01:05 |
|
||
|
Между BIGIN TRAN и COMMIT TRAN
|
|||
|---|---|---|---|
|
#18+
еще есть зависимость (какая?) от серъезности ошибки. Я постоянно нарываюсь на ситуацию, когда между Begin tran и commit tran возникает ошибка синтаксиса, то процедура завершается сразу, без выполнения каких-либо операторов, в том числе и операторов RallBack или Commit. И эта транзакция висит, пока не прибить коннекшн, после чего все откатывается до оператора Begin Tran ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2002, 14:06:04 |
|
||
|
Между BIGIN TRAN и COMMIT TRAN
|
|||
|---|---|---|---|
|
#18+
2 Hibernate: В хп после каждой команды t-sql анализируй @@error и если <>0 откатывай транзакцию. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2002, 14:48:09 |
|
||
|
Между BIGIN TRAN и COMMIT TRAN
|
|||
|---|---|---|---|
|
#18+
Ещё, по моему, при RallBack в триггере завершается весь батч. А Makc правильно сказал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2002, 15:33:46 |
|
||
|
Между BIGIN TRAN и COMMIT TRAN
|
|||
|---|---|---|---|
|
#18+
2 Hibernate Такое может происходить только если объявление транзакции и остальное (где возникает синтаксическая ошибка) находятся в разных батчах. Отсюда простой вывод - объявление транзакций, работа в ней и её завершение должно быть в одном батче (или в одной процедуры). И буде тебе счастье. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2002, 15:54:37 |
|
||
|
Между BIGIN TRAN и COMMIT TRAN
|
|||
|---|---|---|---|
|
#18+
я в легком шоке - еще пол-года назад, описанная мною ситуация возникала, а сейчас специательно попробовал - воспроизвести не получилось транзакция не зависает!!!! Хотя именно на это я списывал нерегулярные зависания транзакций... Бум искать другую причину... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2002, 11:41:24 |
|
||
|
Между BIGIN TRAN и COMMIT TRAN
|
|||
|---|---|---|---|
|
#18+
4 Dankov SET XACT_ABORT в 6.5 помоему нет. А если его нет, то зачем тогда вообще использовать в этом конкретном случае begin-commit, если все равно после каждого инсерта нужно проверять на случай ошибки и делать откат ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2002, 23:15:51 |
|
||
|
|

start [/forum/topic.php?fid=46&msg=32056570&tid=1819645]: |
0ms |
get settings: |
5ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
43ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
31ms |
get tp. blocked users: |
1ms |
| others: | 202ms |
| total: | 305ms |

| 0 / 0 |
