显式事务
显式事务就是可以显式地在其中定义事务的开始和结束的事务。
DB-Library 应用程序和 Transact-SQL 脚本使用 BEGIN TRANSACTION、COMMIT TRANSACTION、COMMIT WORK、ROLLBACK TRANSACTION 或 ROLLBACK WORK Transact-SQL 语句定义显式事务。
BEGIN TRANSACTION
标记显式连接事务的起始点。COMMIT TRANSACTION 或 COMMIT WORK
如果没有遇到错误,可使用该语句成功地结束事务。该事务中的所有数据修改在数据库中都将永久有效。事务占用的资源将被释放。ROLLBACK TRANSACTION 或 ROLLBACK WORK
用来清除遇到错误的事务。该事务修改的所有数据都返回到事务开始时的状态。事务占用的资源将被释放。
还可以在 OLE DB 中使用显式事务。调用 ITransactionLocal::StartTransaction 方法可启动事务。如果将 fRetaining 设置为 FALSE,通过调用 ITransaction::Commit 或 ITransaction::Abort 方法结束事务时不会自动启动另一事务。
在 ADO 中,对 Connection 对象使用 BeginTrans 方法可启动隐式事务。若要结束该事务,可调用该 Connection 对象的 CommitTrans 或 RollbackTrans 方法。
在 ADO.NET SqlClient 托管提供程序中,对 SqlConnection 对象使用 BeginTransaction 方法可以启动一个显式事务。若要结束事务,可以对 SqlTransaction 对象调用 Commit() 或 Rollback() 方法。
ODBC API 不支持显式事务,只支持自动提交和隐式事务。
显式事务模式持续的时间只限于该事务的持续期。当事务结束时,连接将返回到启动显式事务前所处的事务模式,或者是隐式模式,或者是自动提交模式。
注意 |
---|
在多个活动的结果集 (MARS) 会话中,通过 Transact-SQL BEGIN TRANSACTION 语句启动的显式事务将变成批范围的事务。如果批范围的事务在批处理完成时还没有提交或回滚,SQL Server 将自动回滚该事务。有关详细信息,请参阅控制事务(数据库引擎)和事务语句 (Transact-SQL)。 |