Jawabannya adalah YA , Anda bisa mendapatkannya kembali, tapi itu tidak mudah. Semua basis data mencatat setiap perubahan yang dilakukan untuk itu. Anda perlu:
- Matikan server (atau setidaknya masukkan ke mode hanya-baca)
- Ambil cadangan penuh dari server
- Dapatkan salinan semua file log db yang kembali ke sebelumnya saat kecelakaan terjadi
- Pulihkan cadangan ke server lain
- Menggunakan alat admin db, putar kembali file log sampai Anda "membatalkan" kecelakaan
- Periksa kode yang dipulihkan di proc yang disimpan dan kodekan kembali ke versi Anda saat ini
Dan yang paling penting:DAPATKAN KODE PROSEDUR TERSIMPAN DI BAWAH KONTROL SUMBER
Banyak orang tidak memahami konsep ini:Anda hanya dapat membuat perubahan ke basis data; Anda tidak dapat memutar kembali versi proc yang disimpan seperti yang Anda bisa dengan kode aplikasi dengan mengganti file dengan versi sebelumnya. Untuk "memutar kembali", Anda harus membuat lebih banyak perubahan yang menjatuhkan/mendefinisikan proc tersimpan Anda.
Catatan untuk nitpickers:Yang saya maksud dengan "roll back" bukan "transaction roll back". Maksud saya, Anda telah membuat perubahan dan memutuskan setelah server dicadangkan bahwa perubahan tersebut tidak baik.