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_TRANSACTIONS
set toON
或显式BEGIN TRAN
语句,那么每个单独的查询都是它自己的事务,即“自动提交”,您无需担心。意思是,2 个独立的INSERT
语句是两个完全独立的事务。
归档时间: |
|
查看次数: |
2142 次 |
最近记录: |