请输入您要查询的百科知识:

 

词条 隐性事务
释义

一、简介

一种连接选项,该选项下连接执行的每个 SQL 语句都视为单独的事务。

二、Transact-SQL 隐性事务

DB-Library 应用程序和 Transact-SQL 脚本使用 Transact-SQL SET IMPLICIT_TRANSACTIONS ON 语句启动隐性事务模式。使用 SET IMPLICIT_TRANSACTIONS OFF 语句关闭隐性事务模式。使用 COMMIT TRANSACTION、COMMIT WORK、ROLLBACK TRANSACTION 或 ROLLBACK WORK 语句结束每个事务。

SET QUOTED_IDENTIFIER OFF

GO

SET NOCOUNT OFF

GO

USE pubs

GO

CREATE TABLE ImplicitTran (Cola int PRIMARY KEY,

Colb char(3) NOT NULL)

GO

SET IMPLICIT_TRANSACTIONS ON

GO

/* First implicit transaction started by an INSERT statement */

INSERT INTO ImplicitTran VALUES (1, 'aaa')

GO

INSERT INTO ImplicitTran VALUES (2, 'bbb')

GO

/* Commit first transaction */

COMMIT TRANSACTION

GO

/* Second implicit transaction started by a SELECT statement */

SELECT COUNT(*) FROM ImplicitTran

GO

INSERT INTO ImplicitTran VALUES (3, 'ccc')

GO

SELECT * FROM ImplicitTran

GO

/* Commit second transaction */

COMMIT TRANSACTION

GO

SET IMPLICIT_TRANSACTIONS OFF

GO

三、API 隐性事务

用来设置隐性事务的 API 机制是 ODBC 和 OLE DB。

ODBC 调用 SQLSetConnectAttr 函数启动隐性事务模式,其中 Attribute 设置为 SQL_ATTR_AUTOCOMMIT,ValuePtr 设置为 SQL_AUTOCOMMIT_OFF。

在调用 SQLSetConnectAttr 之前,连接将一直保持为隐性事务模式。其中 Attribute 设置为 SQL_ATTR_AUTOCOMMIT,ValuePtr 设置为 SQL_AUTOCOMMIT_ON。

调用 SQLEndTran 函数提交或回滚每个事务,其中 CompletionType 设置为 SQL_COMMIT 或 SQL_ROLLBACK。

当 SQL_AUTOCOMMIT_OFF 由 ODBC 应用程序设置时,Microsoft® SQL Server™ ODBC 驱动程序发出 SET IMPLICIT_TRANSACTION ON 语句。

OLE DB

OLE DB 没有专门用来设置隐性事务模式的方法。 调用 ITransactionLocal::StartTransaction 方法启动显式模式。

当调用 ITransaction::Commit 或 ITransaction::Abort 方法(其中 fRetaining 设置为 TRUE)时,OLE DB 将完成当前的事务并进入隐性事务模式。只要将 ITransaction::Commit 或 ITransaction::Abort 中的 fRetaining 设置为 TRUE,那么连接就将保持隐性事务模式。

调用 ITransaction::Commit 或 ITransaction::Abort(其中 fRetaining 设置为 FALSE)停止隐性事务模式。

ADO

ADO 不支持隐性事务。ADO 应用程序使用自动提交模式或显式模式。

随便看

 

百科全书收录4421916条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。

 

Copyright © 2004-2023 Cnenc.net All Rights Reserved
更新时间:2025/2/27 7:00:24