Re: Автооткат прерванных транзакций в MSSQL
От: phwp  
Дата: 22.03.04 23:21
Оценка:
Здравствуйте, Алексей К., Вы писали:

АК>Вот некоторый фрагмент кода хранимой процедуры


АК>
АК>begin transaction
АК>...
АК><Здесь идет длительный SQL оператор, допустим UPDATE>

АК>set @error = @@error

АК>if @error = 123
АК>    <выполнение действий по этому виду ошибки>
АК>else
АК>if @error = 456
АК>    <выполнение действий по этому виду ошибки>

АК>if @error > 0
АК>   rollback transaction
АК>else
АК>   commit transaction
АК>


АК>если прервать выполнение процедуры на этапе выполнения <длительного оператора> то транзакция остается открыта

АК>(это можно увидеть и в Query analyser'е)

АК>Вопрос вот в чем:

АК>Может можно каким либо образом указать чтобы при отмене(именно при отмене) выполнения процедуры, сервер автоматически откатывал открытую транзакцию?


For example, you terminate SP with command ‘kill’ while <long running statement> is being executed, in this case process gets 'KILLED/ROLLBACK' status. However, rollback process could also take a long time, so your process will live with the status 'KILLED/ROLLBACK' until rollback complete.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.