2016-09-27 119 views
-1

我在幾乎所有的地方找到了一個點:
1)我們可以在刪除查詢中回滾,但不能在截斷和放下。
但是當我執行查詢,然後成功地與刪除回滾完成,降&截斷我們可以在刪除,刪除和截斷中回滾嗎?

我們可以在刪除條件回滾的數據,截斷&下降。 但是必須使用Begin Transaction在執行查詢之前刪除,刪除&截斷。

這裏是例子:

Create Database Ankit 

Create Table Tbl_Ankit(Name varchar(11)) 

insert into tbl_ankit(name) values('ankit'); 
insert into tbl_ankit(name) values('ankur'); 
insert into tbl_ankit(name) values('arti'); 

Select * From Tbl_Ankit 

/*======================For Delete==================*/ 
Begin Transaction 
Delete From Tbl_Ankit where Name='ankit' 

Rollback 
Select * From Tbl_Ankit 

/*======================For Truncate==================*/ 
Begin Transaction 
Truncate Table Tbl_Ankit 

Rollback 
Select * From Tbl_Ankit 

/*======================For Drop==================*/ 
Begin Transaction 
Drop Table Tbl_Ankit 

Rollback 
Select * From Tbl_Ankit 
+0

您正在使用哪個dbms? – jarlh

回答

0

上述3筆交易的所有可以回滾,因爲所有的人都產生詳細的日誌。有關更多信息,請參閱this SO答案。並用this blog進行詳細解釋。

+0

感謝鏈接@Pratik –

0

我們可以回滾中刪除,刪除&截斷?

您可以回滾刪除,刪除,SQLServer中截斷,但在甲骨文不能回滾截斷

+0

但根據stackoverflow鏈接,我們不能在Drop&truncate中回滾。我在谷歌上搜索並得到了很多鏈接顯示,只有DELETE操作可以回滾(撤消),而DROP和TRUNCATE操作不能回滾。 [鏈接](http://stackoverflow.com/questions/23008438/sql-truncate-delete-drop-advise),[鏈接](http://www.orafaq.com/faq/difference_between_truncate_delete_and_drop_commands)。我只想知道在SQL中是否有可能? –