-
隱性事務
鎖定
隱性事務是一種連接選項,該選項下連接執行的每個 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 應用程序使用自動提交模式或顯式模式。
- 詞條統計
-
- 瀏覽次數:次
- 編輯次數:12次歷史版本
- 最近更新: 遗祭杨涟文