交易存留期間
利用 Transact-SQL 預存程序啟動的交易以及利用 Managed 程式碼啟動的交易間有一個重要的差異:Common Language Runtime (CLR) 程式碼無法在進入或離開 CLR 引動過程時讓交易狀態不平衡。 請注意此差異的下列含意:
在 CLR 框架內部啟動的交易必須認可或回復,否則 SQL Server 在離開框架時會產生錯誤。
外部交易無法在 CLR 程式碼內部認可或回復。
嘗試認可未在相同程序中啟動的交易時,會造成執行階段錯誤。
嘗試回復未在相同程序中啟動的交易時,會造成交易停止回應 (以防發生其他任何副作用作業)。 交易會停止,直到 CLR 程式碼超出範圍為止。 請注意,當您在程序內部偵測到錯誤,而且想要確認整個交易結束時,這可能相當實用。