Nei*_*l P 4 sql-server t-sql transaction
想象一下,我正在通过管理工作室运行多个批次,由 GO 命令分隔。我想知道隐式事务的行为方式 - 事务是按批次提交还是在整个执行过程中提交一次。
您所说的“隐式交易”究竟是什么意思?您的意思是您启用了IMPLICIT_TRANSACTIONS的会话属性并且正在使用该功能?或者你的意思是你只是没有指定BEGIN TRANSACTION?(即创建“显式”交易)?
如果您的意思是该IMPLICIT_TRANSACTIONS功能,那只会发出该功能,仅此BEGIN TRAN而已。所以,无论是否使用IMPLICIT_TRANSACTIONS发出BEGIN TRAN或者如果你正在做的是明确自己的,你仍然负责发放COMMIT或ROLLBACK。是的,事务可以跨批次,无论您是使用GO分隔批次还是通过F5在不同时间点击来执行多个查询。
在任何一种情况下——IMPLICIT_TRANSACTIONS设置为ON或显式BEGIN TRAN语句——都不会自动提交。在这两种情况下,唯一可能是自动的事情是ROLLBACK如果您关闭连接而不先发出COMMIT或ROLLBACK。
如果没有IMPLICIT_TRANSACTIONSset toON或显式BEGIN TRAN语句,那么每个单独的查询都是它自己的事务,即“自动提交”,您无需担心。意思是,2 个独立的INSERT语句是两个完全独立的事务。
| 归档时间: |
|
| 查看次数: |
2142 次 |
| 最近记录: |