SQL geri alma işleminde, durumu geri yüklediği yerden? Verilerin saklandığı yerde geri almanın geri alabileceği anlamına gelir.SQL geri alma işleminde, durumu geri yüklediği yerden?
0
A
cevap
0
Oracle için, redo günlüğünde değişiklikler tahakkuk edene kadar kaydediliyor. Her RDMS'nin kendi stratejisi vardır.
+0
Aslında Oracle'daki UNDO, yineleme değil. –
0
Eğer onlardan uzak çalıştırmak% 100 (sorgunun tüm çizgi çalıştırın) veya hiç vadede herhangi için güvenli ve kolay bir kodu kullanabilirsiniz
| sorgu 1 | = eklemek veya seçmek gibi veya ... | satır sayısı | = Sayı kapalı sorgu
DECLARE @rowcount int set @rowcount = 0 ;
BEGIN TRANSACTION [Tran1]
BEGIN TRY
<Query 1> ; set @rowcount = (@rowcount + @@ROWCOUNT);
<Query 2> ; set @rowcount = (@rowcount + @@ROWCOUNT);
...
IF @rowcount = <count of lines>
COMMIT TRANSACTION[Tran1]
ELSE
ROLLBACK TRANSACTION[Tran1]
END TRY
BEGIN CATCH
ROLLBACK TRANSACTION[Tran1]
END CATCH
örneğin bu kod çalıştırma 2 insert kendisine veya hiç çalıştırmak şey bütün çalıştırın ve ROLLBACK hat sorguya ama ya
DECLARE @rowcount int set @rowcount = 0 ;
BEGIN TRANSACTION [Tran1]
BEGIN TRY
insert into [database].[dbo].[tbl1] (fld1) values('1') ;
set @rowcount = (@rowcount + @@ROWCOUNT);
insert into [database].[dbo].[tbl2] (fld1) values('2') ;
set @rowcount = (@rowcount + @@ROWCOUNT);
IF @rowcount = 2
COMMIT TRANSACTION[Tran1]
ELSE
ROLLBACK TRANSACTION[Tran1]
END TRY
BEGIN CATCH
ROLLBACK TRANSACTION[Tran1]
END CATCH
Bu, uygulamaya özgüdür. –
İşlem günlüğü. SQL SQL Server'da bir güncelleme gerçekleştiğinde, önce işlem günlüğünde olur, sonra veriler yazılır, böylece geri döndüğünde, t-günlük girişlerini kaldırır ve DB'nin durumu işlem öncesindeki gibi olur. olmuş. düzenleme * SQL Server'a özgü. – Jeremy