在SQL Server中,我如何知道当前正在使用的事务模式?如自动提交,显式或隐式。我怎样才能使用tsql将一种模式更改为另一种模式? 非常感谢。在SQL Server中,我如何知道当前正在使用的事务模式?
回答
IF @@TRANCOUNT = 0 PRINT 'No current transaction, autocommit mode (default)'
ELSE IF @@OPTIONS & 2 = 0 PRINT 'Implicit transactions is off, explicit transaction is currently running'
ELSE PRINT 'Implicit transactions is on, implicit or explicit transaction is currently running'
我不认为有一种方法可以确定当前事务是明确启动还是隐式启动。所以,这段代码只是试图猜测:如果IMPLICIT_TRANSACTIONS为OFF,则事务被假定为明确启动。
MSDN引用:
select @@OPTIONS & 2
如果返回2,则表示处于隐式事务模式。如果它返回0,则表示自动提交。
要切换你在哪种模式,你会使用
set implicit_transactions on
或
set implicit_transactions off
它应该是implicit_transactions。 – 2013-10-18 13:42:55
@daniel_aren - 真的,现在改变了。不知道为什么它没有被发现之前。 – 2013-10-18 13:44:47
开启/关闭是否发生在服务器级别或事务正在进行的活动会话? – SQLnbe 2014-10-30 00:41:08
轻微修改以前发布的脚本 - 连接是在自动提交模式下,如果没有活跃的交易,隐性交易关闭:
IF @@TRANCOUNT = 0 AND (@@OPTIONS & 2 = 0)
PRINT 'No current transaction, autocommit mode (default)'
ELSE IF @@TRANCOUNT = 0 AND (@@OPTIONS & 2 = 2)
PRINT 'Implicit transactions is on, no transaction started yet'
ELSE IF @@OPTIONS & 2 = 0
PRINT 'Implicit transactions is off, explicit transaction is currently running'
ELSE
PRINT 'Implicit transactions is on, implicit or explicit transaction is currently running' + CAST(@@OPTIONS & 2 AS VARCHAR(5))
- 1. 我如何知道当前正在运行的node.js版本?
- 2. sql-server:我如何知道谁在我的数据库中?
- 3. 在Django中,我如何知道当前登录的用户?
- 4. 我如何知道我的数据库正在使用哪种恢复模式?
- 5. 如何知道当前屏幕是Android中的全屏模式
- 6. 如何使用DISTINCT,当我在SQL Server
- 7. 如何让SQL Server知道不在查询中使用缓存?
- 8. PHP:如何知道用户当前正在下载文件?
- 9. AHK调试:如何知道当前正在执行的行号
- 10. 如何知道当前PC
- 11. 何时使用SQL Server中的事务
- 12. 如何知道自己是否enteties在当前事务更改与NHibernate?
- 13. 我如何知道SQL Server已启动并可以使用?
- 14. 如何知道当前模式是真实模式还是大实模?
- 15. 如何知道.net中的当前在线用户
- 16. 如何知道xamarin iOS中的当前故事板名称?
- 17. 如何知道Windows Phone 7当前正在播放音乐?
- 18. SQL Server事务我如何提交我的事务
- 19. 我如何知道是否正在使用Spring引导中的模拟?
- 20. 当我只知道它的URL时如何使用wcf服务
- 21. 如何使用os.time()知道脚本中的当前时间?
- 22. 的Grails:在当前事务
- 23. 我如何知道当前的前台活动(不是来自服务)?
- 24. SQL Server:如何知道是否有行正在引用要删除的行
- 25. SQL Server如何知道如何使用金钱
- 26. 如何知道Apache Spark中当前正在运行哪个阶段的工作?
- 27. SQL Server 2008中:没有“释放保存点”对当前事务
- 28. 如何在Microsoft SQL Server 2014中使用特定模式
- 29. SQL Server 2005中的分布式事务
- 30. 在JavaScript中,我如何知道我正在运行IPad1与IPad2?
我认为消息'没有当前事务,自动提交模式(默认)'有点误导,因为在这一点上自动提交并不完全确定,可以为隐式事务设置连接,但由于没有语句尚未发布交易。 – MaxiWheat 2017-01-11 21:17:49