共用方式為


交易種類

Microsoft SQL Server 2005 Compact Edition (SQL Server Compact Edition) 支援兩種交易類型:明確及自動認可。

明確交易

明確地定義交易的起始及結束稱為明確交易,您可使用 SQL 陳述式或資料庫 API 函數指定明確交易。

SQL 陳述式

透過使用 SQL Server Management Studio,下列 SQL 陳述式可用於定義明確交易:

  • BEGIN TRANSACTION
    標示連接的明確交易起始點。
  • COMMIT TRANSACTION
    如果沒有發生錯誤,便成功結束交易。所有由交易修改的資料會成為資料庫的永久部分,並釋放交易所持有的資源。
  • ROLLBACK TRANSACTION
    如果發生錯誤便清除交易。所有由交易修改的資料會返回交易起始時的狀態,並釋放交易所持有的資源。

ADO.NET 及 OLE DB

您也可在 ADO.NET 及 OLE DB 中使用明確交易。

在 ADO.NET 中,請使用 SqlCeConnection 物件的 BeginTransaction 方法來起始明確交易。要結束交易,請呼叫 SqlCeTransaction 物件的 Commit 或 Rollback 方法。

在 OLE DB 中,請呼叫 ITransactionLocal::StartTransaction 方法來啟動交易。呼叫 ITransaction::Commit 或 ITransaction::Abort 方法,並將 fRetaining 設為 FALSE 以結束交易,且不自動起始另一個交易。

附註:
您可在單一 ADO.NET 連線上建立多個交易,並將其指派至個別的命令。
重要事項:
使用 ADO.NET API 認可交易時,該交易中所有開啟的資料讀取器和結果集都應關閉。

自動認可交易

自動認可模式是 SQL Server Compact Edition 的預設交易管理模式。每個 SQL 陳述式在完成時會被認可或回復。除非已使用明確交易覆寫此預設模式,否則 SQL Server Compact Edition 連接以自動認可模式運作。自動認可模式也是 ADO.NET 及 OLE DB 的預設模式。

SQL Server Compact Edition 連接以自動認可模式運作,直到 BEGIN TRANSACTION 陳述式起始明確交易為止。認可或回復明確交易後,SQL Server Compact Edition 會返回自動認可模式。

編譯及執行時期錯誤

有別於 Microsoft SQL Server,SQL Server Compact Edition 不會以批次方式處理陳述式,SQL Server Compact Edition 一次僅個別處理及執行一個陳述式。如果特定陳述式傳回錯誤,不會影響該批次中任何其他陳述式的狀態。例如,如果 SQL Server Management Studio 用於執行 SQL Server Compact Edition 中的下列查詢集,前兩個查詢會成功,但第三個查詢會因語法錯誤而失敗。

CREATE TABLE TestData (col int);

INSERT INTO TestData VALUES (1);

INSERTT INTO TestData VALUES (1);

附註:
如果這些查詢是當做一個批次傳送到 SQL Server,則所有查詢都會失敗,因為這些查詢會一起剖析。語法錯誤會導致 SQL Server 無法為整個批次建構執行計劃。

發生作業的較高階交易不會回復也不會認可交易。

請參閱

概念

交易 (SQL Server Compact Edition)
控制交易
交易與連接

說明及資訊

取得 SQL Server Compact Edition 協助