共用方式為


管理交易 (XMLA)

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

隱含與明確交易。

交易是隱含或明確的:

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

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

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

交易和參考計數

SQL Server Analysis Services維護每個會話的交易參考計數。 不過,SQL Server Analysis Services不支援巢狀交易,但每個會話只會維護一個作用中的交易。 如果目前的工作階段沒有使用中交易,則會將交易參考計數設定為 0。

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

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

開始交易

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

認可交易

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

回復交易

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

另請參閱

在 Analysis Services 中使用 XMLA 進行開發