sql >> Databasteknik >  >> RDS >> Sqlserver

ångra ändringar i en lagrad procedur

Svaret är JA , du kan få tillbaka det, men det är inte lätt. Alla databaser loggar varje ändring gjorts på den. Du måste:

  1. Stäng av servern (eller ställ den åtminstone i skrivskyddat läge)
  2. Ta en fullständig säkerhetskopia av servern
  3. Få en kopia av alla db-loggfiler som går tillbaka till innan olyckan inträffade
  4. Återställ säkerhetskopian till en annan server
  5. Med hjälp av db-administratörsverktyg, rulla tillbaka genom loggfilerna tills du "ångrar" olyckan
  6. Undersök den återställda koden i den lagrade processen och koda tillbaka den till din nuvarande version

Och viktigast av allt:FÅ DIN LAGRADE PROCEDURKOD UNDER KÄLLEKONTROLL

Många tycker inte om det här konceptet:Du kan bara göra ändringar till en databas; du kan inte återställa den lagrade proc-versionen som du kan med applikationskod genom att ersätta filer med deras tidigare versioner. För att "rulla tillbaka" måste du göra mer ändringar som släpper/definierar din lagrade proc.

Note to nitpickers:Med "roll back" menar jag inte "transaction roll back". Jag menar att du har gjort dina ändringar och bestämmer när servern är säkerhetskopierad att ändringen inte är bra.



  1. Grundläggande administration av Oracle 12c Multitenant

  2. MySQL konverterar CHAR(32) datatyp till BINARY(16) utan att förlora data

  3. Hur man beräknar skillnaden mellan två datumtider i T-SQL

  4. Anpassade fält i Many2Many JoinTable