Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.02.29;
Скачать: CL | DM;

Вниз

Назавершенная транзакция в прерванной хп.   Найти похожие ветки 

 
Bless   (2004-02-03 16:44) [0]

Что происходит, выполнение хранимой процедуры, внутри которой была начата транзакция (begin tran...), была прервана из-за ошибки до команды commit tran или rollback tran.
Что происходит с транзакцией в таком случае? Откатывается ли она автоматически?
Или ошибки внутри процедуры не прерывают ее работу?


 
KSergey ©   (2004-02-03 16:45) [1]

Нифига она не откатывается
Это надо учитывать при разработке ХП и откатывать ее обязательно!


 
KSergey ©   (2004-02-03 16:47) [2]

Ошибки внутри процедуры не завершают ее работу
после каждого оператора надо писать

IF @@ERROR <> 0
BEGIN
ROLLBACK TRANSACTION
RETURN 0 -- признак ошибки
END


или ждать юкон - в нем обещают нормальную обработку исключений


 
Nikolay M. ©   (2004-02-03 17:04) [3]

Скорее всего не откатится. А какого рода "ошибки" имеются в виду?


 
Bless   (2004-02-03 17:27) [4]

to KSergey> Спасибо.

>А какого рода "ошибки" имеются в виду?

Не знаю. Разные. А что, это имеет значение?


 
ZrenBy ©   (2004-02-03 18:14) [5]

SET XACT_ABORT ON

Но ложка дегтя
http://www.sql.ru/forum/actualthread.aspx?bid=1&tid=39919


 
Bless   (2004-02-04 09:39) [6]

ZrenBy> Вот это здорово :(
Тамошним примером навеяло такие вопросы:
1) Когда компилируется хп?
Перед ее вызовом?
Или один раз сразу после ее создания?


 
Nikolay M. ©   (2004-02-04 09:57) [7]


> Когда компилируется хп?

Насколько я понимаю в колбасных обрезках, то если в ХП имеется динамический SQL, то ХП будет компилиться каждый раз перед вызовом. Если такого нет, то при создании.
Буду рад услышать другие аргументированные мнения.


 
Nikolay M. ©   (2004-02-04 10:18) [8]


> Если такого нет, то при создании

Поправлю сам себя. Вот тут описаны некоторые подводные камни:
http://mylib.noda.ru/view.php?id=475


 
Bless   (2004-02-04 14:40) [9]

Всем спасибо. Вопрос исчерпан.



Страницы: 1 вся ветка

Текущий архив: 2004.02.29;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.034 c
1-94012
heady
2004-02-16 17:49
2004.02.29
Активная ссылка


1-93895
Anton
2004-02-15 11:56
2004.02.29
Как изменить элемент массива?


3-93811
Russko
2004-02-03 13:40
2004.02.29
БД на SQL


1-93906
SergP
2004-02-15 20:38
2004.02.29
Нужно ли уничтожать созданые объекты при закрытии приложения


3-93796
Piter
2004-02-01 21:05
2004.02.29
Выбор базы данных