外顯交易

明確交易是明確定義交易的啟動與結束的一種交易。

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::CommitITransaction::Abort 方法時,將 fRetaining 設定為 FALSE,可在不自動啟動另一筆交易的情況下結束交易。

在 ADO 中,使用 Connection 物件的 BeginTrans 方法可啟動外顯交易。若要結束交易,可呼叫 Connection 物件的 CommitTransRollbackTrans 方法。

在 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)>。