#sql-server-2008 #transactions
#sql-server-2008 #транзакции
Вопрос:
У меня есть долго работающий скрипт, который может иметь или не иметь несогласованную транзакцию в конце. Я хотел бы иметь что-то внизу, что можно просто очистить, и если где-то зависает транзакция, просто зафиксируйте ее, а если есть еще один уровень выше, зафиксируйте этот и т.д.
Как я могу это сделать?
Спасибо!
Комментарии:
1. Могу я спросить, как ваш код структурирован таким образом, что транзакции могут оставаться «зависшими», в отличие от фиксации или отката? Возможно, какой-нибудь код с включенными в него материалами, связанными с транзакциями, помог бы.
Ответ №1:
Цикл до тех пор, пока все транзакции не будут коммутированы. Хотя ситуация странная…
WHILE XACT_STATE() = 1
COMMIT TRAN