Arama butonu
Bu konudaki kullanıcılar: 1 misafir
2
Cevap
325
Tıklama
0
Öne Çıkarma
Tek bir Transaction kaydını iptal etmek mümkün mü?
E
8 yıl
Er
Konu Sahibi

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.



B
8 yıl
Yarbay

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


Bu mesaja 1 cevap geldi.
E
7 yıl
Er
Konu Sahibi

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.



DH Mobil uygulaması ile devam edin. Mobil tarayıcınız ile mümkün olanların yanı sıra, birçok yeni ve faydalı özelliğe erişin. Gizle ve güncelleme çıkana kadar tekrar gösterme.