外顯交易
外顯交易 (Explicit Transaction) 是明確定義交易的啟動與結束的一種交易。在 SQL Server 7.0 或更早的版本中,外顯交易也稱為使用者自訂或使用者指定的交易。
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 方法可啟動交易。呼叫 ITransaction::Commit 或 ITransaction::Abort 方法時,將 fRetaining 設定為 FALSE,可在不自動啟動另一筆交易的情況下結束交易。
在 ADO 中,使用 Connection 物件的 BeginTrans 方法可啟動外顯交易。若要結束交易,可呼叫 Connection 物件的 CommitTrans 或 RollbackTrans 方法。
在 ADO.NET SqlClient 管理的提供者中,在 SqlConnection 物件上使用 BeginTransaction 方法,可開始明確交易。若要結束交易,可呼叫 SqlTransaction 物件上的 Commit() 或 Rollback() 方法。
ODBC API 不支援外顯交易,僅支援自動認可及隱含交易 (Implicit Transaction)。
外顯交易模式只在交易期間運作。當交易結束時,連線便會回到外顯交易啟動之前的交易模式,可能是隱含或自動認可模式。
附註: |
---|
在 Multiple Active Result Set (MARS) 工作階段下,以 Transact-SQL BEGIN TRANSACTION 陳述式開始的明確交易會成為批次範圍的交易。當批次完成時,如果未認可或回復批次範圍的交易,SQL Server 會自動回復交易。如需詳細資訊,請參閱<控制交易 (Database Engine)>與<交易 (Transact-SQL)>。 |
請參閱
其他資源
BEGIN TRANSACTION (Transact-SQL)
ROLLBACK TRANSACTION (Transact-SQL)
COMMIT TRANSACTION (Transact-SQL)
ROLLBACK WORK (Transact-SQL)
COMMIT WORK (Transact-SQL)
Performing Transactions (ODBC)
Supporting Local Transactions