Şimdi Ara

Tek bir Transaction kaydını iptal etmek mümkün mü?

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
3
Cevap
1
Favori
289
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • Merhaba,
    SQL'de Transactional Log sayesinde point in time recovery işlemi yapılabiliyor. Yani database'i belli bir zamana geri döndürebiliyoruz. Lakin benim ihtiyacım olan tek bir Transaction kaydını iptal etmek. Yani belli bir zamanda yaptığım insert, update yahut delete işlemini sadece o transaction'a özel iptal etmek.

    Örnek: Bu sabah saat 09:00'da "DELETE FROM STOK WHERE STOKKODU='131313'" komutunu çalıştırdım. 09:01'de de "UPDATE STOK SET MIKTAR=12.5 WHERE STOKKODU='212121'" işlemini de yaptım. Yapılan UPDATE işlemi iptal edilmeden sadece DELETE işlemini geri almak istiyorum. Transaction kayıtları içinde DELETE transaction ID'sini fn_dblog ile bulup point in time yapabilmeme rağmen sadece bu transactionID işlemini nasıl iptal edebilirim?

    Bu konuda bilgisi ve yardımı olabilecek biri var mı? Varsa çok ama çok makbule geçer.

    Teşekkürler. İyi çalışmalar.







  • DB'yi ayrı bir yere restore et, istediğin kayıtları tekrar restore ettiğin yerden kopyala. dediğin tarz birşey yok.
  • quote:

    Orijinalden alıntı: beyinsis

    DB'yi ayrı bir yere restore et, istediğin kayıtları tekrar restore ettiğin yerden kopyala. dediğin tarz birşey yok.

    beyinsis kardeşim birçok kaynakta transaction kayıtlarını decode etmenin çok zor olduğunu yazıyor bu konuda haklısın. Ama bu işi yapan bir yazılım var ve adı ApexSQL. Ben bizzat bulup kullandım. Her bir transaction'ın komutlarının tersini veya kendisini sana verip kullanmanı sağlıyor. Milyon kayıtlı bir tablo oluşturdum ve delete ile sildim. Bana milyon kayıt insert komutu verdi. Veri tabanın full recovery modda olması yeterli. Adamlar fena yapmışlar özetle. Selamlar.
  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.