书上说的事务包括以下几种类型:
①:自动提交事务:SQL Server的默认模式,它将每条单独的T-SQL语句视为一个事务。如果成功执行,则自动提交,否则回滚。
②:隐性事务:打开隐性事务:set implicit_transactions on,当以隐性事务模式操作时,SQL Servler将在提交或回滚事务后自动启动新事务。无法描述事务的开始,只需要提交或回滚事务。
③:显式事务:用begin transaction明确指定事务的开始。我的问题:
对于①种和③种,自动处理事务和显示事务,我是能理解的。对于第②种隐性事务,我就简直连语句都读不通--------------当以隐性事务模式操作时,SQL Servler将在提交或回滚事务后自动启动新事务。无法描述事务的开始,只需要提交或回滚事务。
读不懂..提交或回滚事务后自动启动新事务?啥意思啊
请指点..谢谢!!!
①:自动提交事务:SQL Server的默认模式,它将每条单独的T-SQL语句视为一个事务。如果成功执行,则自动提交,否则回滚。
②:隐性事务:打开隐性事务:set implicit_transactions on,当以隐性事务模式操作时,SQL Servler将在提交或回滚事务后自动启动新事务。无法描述事务的开始,只需要提交或回滚事务。
③:显式事务:用begin transaction明确指定事务的开始。我的问题:
对于①种和③种,自动处理事务和显示事务,我是能理解的。对于第②种隐性事务,我就简直连语句都读不通--------------当以隐性事务模式操作时,SQL Servler将在提交或回滚事务后自动启动新事务。无法描述事务的开始,只需要提交或回滚事务。
读不懂..提交或回滚事务后自动启动新事务?啥意思啊
请指点..谢谢!!!
还是不是很明白,能否举个小点的例子看看
隐式使用的第二个update语句,如果不成功,需要回滚,那么第一个update语句不受影响,因为不在同一个事务中。
--显式使用
begin tran
update x
set a=xx
commit--隐式使用
update x
set a=xx
commit/rollbackupdate b
set abc=asdf
commit/rollback
设置隐式事务不是有一个SET IMPLICIT_TRANSACTIONS吗?那如何设置,会影响到上一个事务呢?