sql >> Database teknologi >  >> RDS >> Sqlserver

fortryd ændringer af en lagret procedure

Svaret er JA , du kan få det tilbage, men det er ikke let. Alle databaser logger hver ændring foretaget på det. Du skal:

  1. Luk serveren (eller sæt den i det mindste i skrivebeskyttet tilstand)
  2. Tag en komplet sikkerhedskopi af serveren
  3. Få en kopi af alle de db-logfiler, der går tilbage til før, da ulykken skete
  4. Gendan sikkerhedskopien til en anden server
  5. Brug db admin-værktøjer til at rulle tilbage gennem logfilerne, indtil du "fortryder" ulykken
  6. Undersøg den gendannede kode i den lagrede proc, og indkod den tilbage til din nuværende version

Og vigtigst af alt:FÅ DIN GEMMEDE PROCEDUREKODE UNDER KILDEKONTROL

Mange mennesker groker ikke dette koncept:Du kan kun foretage ændringer til en database; du kan ikke rulle den lagrede proc-version tilbage, som du kan med applikationskode ved at erstatte filer med deres tidligere versioner. For at "rulle tilbage", skal du lave mere ændringer, der fjerner/definerer din lagrede proc.

Bemærkning til nitpickers:Med "roll back" mener jeg ikke "transaktion roll back". Jeg mener, du har foretaget dine ændringer og beslutter, når serveren er sikkerhedskopieret, at ændringen ikke er god.



  1. TEXT vs VARCHAR i InnoDB MySQL 5.5. Hvornår skal man bruge hver enkelt

  2. PreparedStatement kaster syntaksfejl

  3. MySQL:#1075 - Forkert tabeldefinition; autoincrement vs en anden nøgle?

  4. Hvordan gemmer man daglige poster fra en mysql-tabel til en anden?