Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Änderungen an einer gespeicherten Prozedur rückgängig machen

Die Antwort ist JA , Sie können zurückbekommen, aber es ist nicht einfach. Alle Datenbanken protokollieren alle daran vorgenommene Änderung. Sie müssen:

  1. Fahren Sie den Server herunter (oder versetzen Sie ihn zumindest in den schreibgeschützten Modus)
  2. Erstellen Sie eine vollständige Sicherung des Servers
  3. Holen Sie sich eine Kopie aller DB-Protokolldateien, die vor dem Unfall zurückreichen
  4. Stellen Sie die Sicherung auf einem anderen Server wieder her
  5. Durchsuchen Sie mithilfe der db-Verwaltungstools die Protokolldateien, bis Sie den Unfall rückgängig gemacht haben
  6. 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.