Uzun transaction işlemleri olması durumunda savepoint adı verilen küçük parçalar bölümler halinde çalıştırılır. COMMIT ederek kalıcı hale veya ROLLBACK edilerek geri alınma işlemleri yapılabilir.
|
1 |
SAVE TRANSACTION DENEME1 |
Yukarıda DENEME1 adında savepoint oluşturuldu. Bu bölümden sonra oluşturulan kodlar COMMIT yada ROLLBACK edilene kadar DENEME1’e ait olacaktır.
|
1 |
COMMIT TRANSACTION DENEME1 |
Oluşturulan savepoint noktasının kalıcı hale getirilmesi için yukarıda ki gibi savepoint noktasının adı yazılarak COMMIT edilir. Eğer geri alınacak ise COMMIT yerine ROLLBACK yazılacaktır.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 |
BEGIN TRANSACTION --Transaction işlemi başlatıldı-- SAVE TRANSACTION DENEME1 --DENEME1 adında savepoint noktası oluşturuldu.-- UPDATE HESAPLAR SET BAKIYE=BAKIYE+1000 --Tabloda tüm bakiyeler 1000 arttırıldı-- SELECT * FROM HESAPLAR --Tablonun tamamı ekrana yazdırıldı-- COMMIT TRANSACTION DENEME1 --Oluşturulan savepoint noktası COMMIT edilerek kalıcı hale getirildi-- SAVE TRANSACTION DENEME2 --DENEME2 adında savepoint noktası oluşturuldu-- DELETE FROM HESAPLAR WHERE BAKIYE<2500 --Tabloda 2500'den küçük kayıtlar silindi-- SELECT * FROM HESAPLAR --Tablonun tamamı ekrana yazdırıldı-- ROLLBACK TRANSACTION DENEME2 --Oluşturulan savepoint noktası ROLLBACK edilerek silme işlemi geri alındı-- SELECT * FROM HESAPLAR --Tablonun son durumu ekrana yazdırıldı-- |
Yukarıda 2 farklı savepoint noktası vardır. DENEME1 adlı savepoint noktasında BAKIYE kayıtları 1000 arttırılarak COMMIT ile kalıcı hale getirildi. DENEME2 adlı savepoint noktasında ise BAKIYE bilgisi 2500’den küçük kayıtlar silindi ve sonrasında ROLLBACK ile bu noktada yapılan değişiklik geri alındı. En son ise tablonun kalıcı olarak son hali ekrana yazdırıldı.
Yukarıda ki resimde savepoint noktalarına ait select sorguları ve en son ise tablonun son hali ekrana yazdırılmıştır.






