如何在不使用事务的情况下回滚删除命令?如果我们不能,那Truncate &删除有什么区别?如何在不使用事务的情况下回滚删除命令
5
A
回答
2
您不能在没有交易的情况下运行ROLLBACK
。您大概可以使用implicit transactions,但您仍需要明确呼叫COMMIT
或ROLLBACK
。但是,为了更好的控制,最好将语句包装在BEGIN TRANSACTION...COMMIT/ROLLBACK
区块中。这样可以避免任何混淆,并且需要使用IMPLICIT_TRANSACTION
设置。
2
当且仅当它们是尚未提交的事务的一部分时,才可以回滚DELETE或TRUNCATE(以及大多数其他操作)。或者,您可以从备份中恢复已删除/截断的数据。
TRUNCATE和DELETE之间有几个区别。最值得注意的是TRUNCATE只能清空一个表,而DELETE只能删除你指定的行。 TRUNCATE在页面级别而不是行级别取消分配和记录数据,这通常使TRUNCATE成为比DELETE更有效的方法,用于删除表格的全部内容。
+2
如果他正在使用**完全恢复模式**,那么他可以将数据库恢复到发出删除命令之前的那一刻。 – 2015-07-03 21:35:51
3
在这种情况下,您不能回滚,但是当您使用完整恢复模式时,则可以将数据库恢复到发出删除命令之前的那一刻。
相关问题
- 1. 如何在不滚动的情况下触发滚动事件
- 2. PHPpgAdmin:如何在不使用SQL的情况下删除行
- 3. 如何在不使用`db.repairDatabase()`的情况下回收已删除的空间?
- 4. 如何在不使用SVN命令的情况下意外删除,重命名或移动
- 5. 如何在不使用hg命令的情况下从mercurial repository下载文件?
- 6. 如何在不使用命令提示符的情况下使用xjc
- 7. 如何在Rake任务中使用ActiveRecord事务以在Ctrl + C中断的情况下回滚
- 8. 如何在没有“还原”或“重新命名”命令的情况下从主服务器中删除提交?
- 9. 如何在服务器停止的情况下删除会话
- 10. 如何在不删除char的情况下使用Scanner Delimiter消除字符组?
- 11. 如何在不导致页面滚动的情况下删除位置散列?
- 12. 如何在不回滚的情况下杀死SQL进程
- 13. 如何在不使用DESCRIBE命令的情况下在Oracle中描述表?
- 14. 如何在某些情况下使用EF执行删除行?
- 15. 如何在不使用svcutil.exe的情况下使用WCF服务?
- 16. 在不使用代码的情况下删除自定义事件日志源
- 17. 在不使用.htaccess的情况下删除文件扩展名
- 18. 如何在不使用命令行的情况下运行Perl脚本?
- 19. 如何在不使用YUM命令的情况下安装RPM工具
- 20. 如何在不使用gradle发布命令的情况下发布Gradle工件
- 21. SQLAlchemy:如何在不查询的情况下删除多行
- 22. 如何在不删除的情况下更新实体对象?
- 23. 如何在不删除子表的情况下删除有约束的表?
- 24. 如何在不删除变量的情况下删除变量中的数据?
- 25. 如何在不使用java.awt.robot的情况下模拟mousePressed事件?
- 26. 如何在不使用commitEditingStyle的情况下删除自定义的UITableViewCell?
- 27. 如何在不删除之前的innerHTML的情况下使用innerHTML?
- 28. 如何在不使用循环的情况下删除DataTable的行?
- 29. 如何在不使用.remove的情况下删除列表中的值?
- 30. 如何在不删除文件的情况下从netbeans中删除项目?
我们在这里谈论哪个平台? – 2013-03-18 08:54:50
没有足够的信息给出。 – bot 2013-03-18 09:03:39
正在编写SQL Server 2012中的代码。 – 2013-03-18 09:08:55