Здравствуйте, Алексей К., Вы писали:
АК>Вот некоторый фрагмент кода хранимой процедуры
АК>АК>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.