Svaret er JA , du kan få det tilbage, men det er ikke let. Alle databaser logger hver ændring foretaget på det. Du skal:
- Luk serveren (eller sæt den i det mindste i skrivebeskyttet tilstand)
- Tag en komplet sikkerhedskopi af serveren
- Få en kopi af alle de db-logfiler, der går tilbage til før, da ulykken skete
- Gendan sikkerhedskopien til en anden server
- Brug db admin-værktøjer til at rulle tilbage gennem logfilerne, indtil du "fortryder" ulykken
- 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.