词条 | 隐性事务 |
释义 | 一、简介一种连接选项,该选项下连接执行的每个 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条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。