11 Aralık 2011 Pazar

SQL Server'da Silinen Kayıtları Pratik Olarak Geri Getirme

Bir kaç gün önce SQL Sunucumuzdaki bir tabloda UPDATE sorgusu çalıştırmak yerine yanlışlıkla DELETE sorgusu çalıştırdım ve belirli tarih aralığındaki kayıtlar silindi:)Sunucu'da DELETE sorgusunu çalıştırmadan 15 dakika önce alınmış bir yedek vardı.DELETE sorgusunu çalıştırmadan önceki kayıtlar aşağıdaki gibi 48 taneydi;





Silinen kayıtları geri almak için son alınan yedeği farklı bir database ismi altında aynı SQL instance'ına  aşağıdaki gibi restore ettim.


Ardından  restore ettiğim veritabanında  tabloya gelip sağ klik yaparak Edit Top 200 Rows komutunu vererek kayıt grid ekranının gelmesini sağladım.Grid ekranının sol üst köşesindeki alanda yine sağ klik yapıp PANE-SQL'i seçerek Query ekranında daha önce sildiğim veritabanındaki kayıtları kontrol etmek için SELECT  komutu ile aşağıdaki gibi sorgulama yaparak 48 adet kaydı kontrol ettim;


Restore ettiğim veritabanında silinen kayıtların var olduğunu kontrol ettikten sonra paneldeki 48 kaydı baştan itibaren shift+alt ok tuşu ile seçip sağ klik yaparak copy komutunu verip kayıt sildiğimiz veritabanında ilgili tabloyu bularak yeniden edit top 200 rows komutu ile gelen grid ekranında en altta null yazan yerin tam solunda sağ click-paste komutunu vererek ilgili ekrandan çıktım.Silinen kayıtların geri yüklendiğini kontrol etmek için SELECT sorgusu yazmalıyız sorgu sonucu  48 adet silinen kaydın var olduğunu gösteriyorsa işlem başarıyla tamamlanmış demektir.