Die Antwort ist JA , Sie können zurückbekommen, aber es ist nicht einfach. Alle Datenbanken protokollieren alle daran vorgenommene Änderung. Sie müssen:
- Fahren Sie den Server herunter (oder versetzen Sie ihn zumindest in den schreibgeschützten Modus)
- Erstellen Sie eine vollständige Sicherung des Servers
- Holen Sie sich eine Kopie aller DB-Protokolldateien, die vor dem Unfall zurückreichen
- Stellen Sie die Sicherung auf einem anderen Server wieder her
- Durchsuchen Sie mithilfe der db-Verwaltungstools die Protokolldateien, bis Sie den Unfall rückgängig gemacht haben
- Untersuchen Sie den wiederhergestellten Code in der gespeicherten Prozedur und codieren Sie ihn zurück in Ihre aktuelle Version
Und am wichtigsten:ERHALTEN SIE IHREN GESPEICHERTEN PROZEDURCODE UNTER QUELLENKONTROLLE
Viele Menschen verstehen dieses Konzept nicht:Sie können nur Änderungen vornehmen zu einer Datenbank; Sie können die gespeicherte Proc-Version nicht wie beim Anwendungscode zurücksetzen, indem Sie Dateien durch ihre vorherigen Versionen ersetzen. Um "zurückzusetzen", müssen Sie mehr erstellen Änderungen, die Ihre gespeicherte Prozedur löschen/definieren.
Hinweis für Erbsenzähler:Mit „Rollback“ meine ich nicht „Transaktions-Rollback“. Ich meine, Sie haben Ihre Änderungen vorgenommen und entscheiden, sobald der Server wieder hochgefahren ist, dass die Änderung nicht gut ist.