do-while затем, что некоторые заказы не сбрасываются до желаемого статуса, а while select проходит по таблице prodTable только 1 раз и может выйти ситуация, когда остаются заказы с другими статусами. А как обойти это без ещё одного select с выборкой только по несброшенным - я пока не додумался.
Транзакцию конечно же влепить нужно

это без вопросов и try-catch тоже