共用方式為


管理交易(XMLA)

傳送至Microsoft SQL Server Analysis Services 實例的每個 XML for Analysis (XMLA) 命令都會在目前隱含或明確會話的交易內容中執行。 若要管理每個交易,您可以使用 BeginTransactionCommitTransactionRollbackTransaction 命令。 藉由使用這些命令,您可以建立隱含或明確的交易、變更交易參考計數,以及啟動、認可或回復交易。

隱含和明確交易

交易為隱含或明確:

隱含交易
如果BeginTransaction命令未指定交易的開頭,Analysis Services 會為 XMLA 命令建立隱含交易。 如果命令成功,Analysis Services 一律會認可隱含交易,並在命令失敗時回復隱含交易。

明確交易
如果命令啟動交易,BeginTransactionAnalysis Services 就會建立明確的交易。 不過,Analysis Services 只會在傳送命令時 CommitTransaction 認可明確交易,並在傳送命令時 RollbackTransaction 回復明確交易。

此外,如果目前會話在作用中交易完成之前結束,Analysis Services 會同時回復隱含和明確交易。

交易和參考計數

Analysis Services 會維護每個會話的交易參考計數。 不過,Analysis Services 不支援巢狀交易,在該交易中,每個會話只會維護一個使用中的交易。 如果目前的會話沒有作用中交易,交易參考計數會設定為零。

換句話說,每個命令會將 BeginTransaction 參考計數遞增一個,而每個 CommitTransaction 命令都會遞減參考計數。 如果命令將 CommitTransaction 交易計數設定為零,Analysis Services 會認可交易。

不過,不論交易參考計數的目前值為何, RollbackTransaction 命令都會回復使用中交易。 換句話說,無論傳送了多少BeginTransaction個命令或CommitTransaction命令,單RollbackTransaction一命令都會回復使用中交易,並將交易參考計數設定為零。

開始交易

此命令 BeginTransaction 會開始目前會話上的明確交易,並將目前會話的交易參考計數遞增一個。 所有後續命令都會視為在作用中交易內,直到傳送足夠的 CommitTransaction 命令來認可使用中交易,或傳送單 RollbackTransaction 一命令來回復使用中交易為止。

認可交易

此命令 CommitTransaction 會認可在目前會話上執行命令之後 BeginTransaction 所執行的命令結果。 每個 CommitTransaction 命令都會遞減會話上作用中交易的參考計數。 如果命令將 CommitTransaction 參考計數設定為零,Analysis Services 會認可使用中的交易。 如果沒有使用中的交易(換句話說,目前會話的交易參考計數已經設定為零),命令 CommitTransaction 會產生錯誤。

回復交易

命令 RollbackTransaction 會回復在目前會話上執行命令之後 BeginTransaction 所執行的命令結果。 不論目前的交易參考計數為何,命令 RollbackTransaction 都會回復使用中交易,並將交易參考計數設定為零。 如果沒有使用中的交易(換句話說,目前會話的交易參考計數已經設定為零),命令 RollbackTransaction 會產生錯誤。

另請參閱

在 Analysis Services 中使用 XMLA 進行開發