Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

cofnąć zmiany w procedurze składowanej

Odpowiedź brzmi TAK , możesz odzyskać go, ale to nie jest łatwe. Wszystkie bazy danych rejestrują co dokonana w nim zmiana. Musisz:

  1. Zamknij serwer (lub przynajmniej przełącz go w tryb tylko do odczytu)
  2. Wykonaj pełną kopię zapasową serwera
  3. Uzyskaj kopię wszystkich plików dziennika bazy danych, które zostały zapisane przed wypadkiem
  4. Przywróć kopię zapasową na innym serwerze
  5. Używając narzędzi administratora bazy danych, cofnij się przez pliki dziennika, aż „cofniesz” wypadek
  6. 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.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL Server IN a wydajność EXISTS

  2. SQL Server Alokacja kwoty na rachunku

  3. Funkcje a procedury składowane

  4. SQL Server ROWCOUNT_BIG()

  5. SQL :usuń ostatni przecinek w łańcuchu