在BeginTrans之后立即进行CommitTrans

问题描述 投票:0回答:1

我正在查看在删除表之前使用cn.BeginTrans的人的代码。代码看起来像这样

cn.BeginTrans
   //Update or delete table code
cn.CommitTrans

我玩过BeginTrans和UpdateTrans,我理解它的作用。它基本上像版本控制,其中BeginTrans = git addgit commitUpdateTrans = git push。至少这是我理解它的方式。

我不明白的事实是在Commitrans之后立即使用begintrans。如果根据this stackoverflow post提交代码,则无法回滚。

如果您要立即提交,为什么不在不使用Trans方法的情况下删除或更新表?

sql-server access-vba
1个回答
2
投票

通过在自动提交模式下进行单个删除或更新(默认设置),不需要事务,因为每个语句都保证是全部或全部。但是,在多个语句的情况下,使用explict事务来确保所有更改都是(已提交)或无(已回滚)以维护一致的数据库非常重要。通常会在catch块中发出回滚(或使用TransactionScope),以确保在发生错误后回滚更改。

© www.soinside.com 2019 - 2024. All rights reserved.