在明确的交易,如果我通过给BEGIN TRANS开始交易,但如果我不提供COMMIT,ROLLBACK或END TRANS,那么应用程序会发生什么?调用BEGIN TRANS时的结果是什么,但不是COMMIT,ROLLBACK或END TRANS?
2
A
回答
8
什么也没有 - 交易仍在进行中。如果您终止连接,则会回滚。
6
由于您的事务可能会锁定数据库的某些部分,因此您可能会导致其他事务/查询阻塞,直到您发出其中一个命令。
在某种程度上,这种或那种方式,交易必须完成。当某些事情发生错误时(例如应用程序结束),它将被回滚,除非您先提交它。
1
如果应用程序退出,则连接隐式关闭并回滚。
如果应用程序在应用程序服务器(例如ASPNET,Java应用服务器等)中运行,那么连接可能会返回到一个池,希望它在重新使用之前被重置,并且事务最终会被回滚但可能不会立即)。
如果未使用的连接位于池中,它最终可能会被应用程序服务器关闭,此时该事务肯定会回滚。
警惕保持开放的交易太久的 - 你会持有锁(如果你改变任何东西),并从被清理停止旧行,这可能有一个数据库非常不利的影响有很多的“搅动”。
0
如果您打开某个交易,您将最终产生不需要的行为。如果在您的应用程序将连接返回到池时未回滚,则会有阻塞事务。 如果回滚,您的工作就会丢失。无论哪种方式,这不是你想在生产环境中的行为。
/HåkanWinther
相关问题
- 1. 如何在SQL Server中实现begin trans,commit trans和rollback
- 2. begin()== end()是什么?
- 3. _()或{%trans%}?
- 4. 什么是{%trans“这是标题。” %}用于我无法理解api
- 5. LoadError enc/trans/single_byte.so
- 6. 如果... BEGIN ... END
- 7. If..begin..begin tran..Rollback
- 8. SessionAwareMessageListener是否需要commit()/ rollback()?
- 9. Laravel禁用slu trans转换
- 10. std :: begin和end的const重载的目的是什么?
- 11. 函数trans在Laravel中不起作用
- 12. Django:通过过滤器传递{%trans%}的结果
- 13. Django模板{%trans%}多元化
- 14. ggvis input_select on scale_numeric trans参数
- 15. BEGIN-END BEGIN TRY-END TRY内部
- 16. “ROLLBACK TRANSACTION named_transaction”的含义是什么?
- 17. set :: end ++的值是什么?
- 18. Perl中BEGIN块的作用是什么?
- 19. 什么是不调用libusb_exit()的后果
- 20. 什么时候应该嵌套PL/SQL BEGIN ... END块?
- 21. 的ExecuteNonQuery返回-1调用时(BEGIN DBMS_OUTPUT.PUT_LINE(1); END;)的Oracle
- 22. 缺少BEGIN和END?
- 23. Django Translation not working and showing trans标签
- 24. 编译问题c到C++ trans
- 25. 为什么std :: basic_string :: substr不遵循[begin,end]约定?
- 26. 为什么我不能创建一个视图BEGIN ... END块
- 27. 为什么不是标量的结果?
- 28. STL算法的begin()和end()
- 29. Django trans问题 - 不能在100%的情况下工作
- 30. 什么是XSLT结果树
真的很糟糕的标题...尝试一些更具描述性 – 2009-06-25 07:42:02