2016-09-27 124 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中是否有可能? –

相关问题