Odpowiedź brzmi TAK , możesz odzyskać go, ale to nie jest łatwe. Wszystkie bazy danych rejestrują co dokonana w nim zmiana. Musisz:
- Zamknij serwer (lub przynajmniej przełącz go w tryb tylko do odczytu)
- Wykonaj pełną kopię zapasową serwera
- Uzyskaj kopię wszystkich plików dziennika bazy danych, które zostały zapisane przed wypadkiem
- Przywróć kopię zapasową na innym serwerze
- Używając narzędzi administratora bazy danych, cofnij się przez pliki dziennika, aż „cofniesz” wypadek
- Zbadaj przywrócony kod w zapisanej procedurze i zakoduj go z powrotem do swojej aktualnej wersji
A co najważniejsze:ZBIERZ PRZECHOWYWANY KOD PROCEDURY POD KONTROLĄ ŹRÓDŁA
Wiele osób nie rozumie tej koncepcji:możesz tylko wprowadzać zmiany do bazy danych; nie możesz cofnąć zapisanej wersji proc, tak jak w przypadku kodu aplikacji, zastępując pliki ich poprzednimi wersjami. Aby „cofnąć”, musisz zrobić więcej zmiany, które upuszczają/definiują Twój przechowywany proces.
Uwaga dla tajników:przez „cofnięcie” nie mam na myśli „cofnięcia transakcji”. Mam na myśli to, że wprowadziłeś zmiany i po utworzeniu kopii zapasowej serwera decydujesz, że zmiana nie jest dobra.