Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Вложенные транзакции при использовании SET XACT_ABORT ON ... ?
|
|||
|---|---|---|---|
|
#18+
Как работают вложанные транзакции при использовании опции SET XACT_ABORT ON ? Все выглядит примерно так : Есть несколько SP которые производит некоторые действия над базой, в виде : CREATE PROCEDURE sp1 @Agr_id .... AS SET XACT_ABORT ON BEGIN TRANSACTION UPADATE .... INSERT IF .. BEGIN UPDATE .. INSERT .. END INSERT .. ... COMMIT TRANSACTION Еще одна SP использует несклько из вышеописанных SP, выглядит примерно так : CREATE PROCEDURE sp_main @Inv_id .... AS SET XACT_ABORT ON BEGIN TRANSACTION INSERT .. UPDATE .. SELECT ... IF .. BEGIN INSERT EXEC sp1 @Agr_id ... END EXEC sp2 UPADATE .. EXEC sp3 COMMIT TRANSACTION Вопросы : 1. При ошибке внутри sp1, sp2 или sp3 будет произведен откат транзакции объявленой в sp_main ? 2. При COMMIT в каждой из вложенных sp на будут ли зафиксированны изменения вызванные операторами INSERT и UPDATE неходящимися до вызоыв вложенной sp ? 3. Имеет ли смысл использовать разделение сложной sp на несколько более простых (для упрощения отладки при большом размере sp), тоесть использование вложенных sp с параметрами вместо процедур(функций), даже если потом эта sp отдельно нигде не используеться ? Что при этом происходит с планом выполнения sp которая состоит из нескольких вложенных sp вызываемых с помощью EXEC ? P.S. Использую MS SQL Server 7 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2001, 05:52 |
|
||
|
|

start [/forum/topic.php?desktop=1&fid=46&tid=1826330]: |
0ms |
get settings: |
9ms |
get forum list: |
19ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
53ms |
get topic data: |
14ms |
get forum data: |
4ms |
get page messages: |
36ms |
get tp. blocked users: |
2ms |
| others: | 246ms |
| total: | 391ms |

| 0 / 0 |
