Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Вложенные транзакции при использовании SET XACT_ABORT ON ... ? / 1 сообщений из 1, страница 1 из 1
29.06.2001, 05:52
    #32008606
DennisL
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вложенные транзакции при использовании SET XACT_ABORT ON ... ?
Как работают вложанные транзакции при использовании опции
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
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Вложенные транзакции при использовании SET XACT_ABORT ON ... ? / 1 сообщений из 1, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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