SQL Server обнаруживает транзакции и фиксирует?

#sql-server-2008 #transactions

#sql-server-2008 #транзакции

Вопрос:

У меня есть долго работающий скрипт, который может иметь или не иметь несогласованную транзакцию в конце. Я хотел бы иметь что-то внизу, что можно просто очистить, и если где-то зависает транзакция, просто зафиксируйте ее, а если есть еще один уровень выше, зафиксируйте этот и т.д.

Как я могу это сделать?

Спасибо!

Комментарии:

1. Могу я спросить, как ваш код структурирован таким образом, что транзакции могут оставаться «зависшими», в отличие от фиксации или отката? Возможно, какой-нибудь код с включенными в него материалами, связанными с транзакциями, помог бы.

Ответ №1:

Цикл до тех пор, пока все транзакции не будут коммутированы. Хотя ситуация странная…

  WHILE XACT_STATE() = 1
      COMMIT TRAN