指定當本地事務活動時,如果執(zhí)行遠程存儲過程,將啟動由 Microsoft 分布式事務管理器 (MS DTC) 管理的 Transact-SQL 分布式事務。
SET REMOTE_PROC_TRANSACTIONS { ON | OFF }
ON | OFF
當設置為 ON 時,從本地事務執(zhí)行遠程存儲過程時將啟動 Transact-SQL 分布式事務。當設置為 OFF 時,從本地事務調用遠程存儲過程將不啟動 Transact-SQL 分布式事務。
當 REMOTE_PROC_TRANSACTIONS 設置為 ON 時,調用遠程存儲過程將啟動分布式事務,并用 MS DTC 登記該事務。調用遠程存儲過程的服務器是事務創(chuàng)建者,負責控制事務的完成。當連接發(fā)出后續(xù) COMMIT TRANSACTION 或 ROLLBACK TRANSACTION 語句時,主控服務器請求 MS DTC 在所涉及的服務器間管理分布式事務的完成。
啟動 Transact-SQL 分布式事務后,可以對其它遠程服務器調用遠程存儲過程。遠程服務器全部登記在 Transact-SQL 分布式事務中,而 MS DTC 確保在每臺服務器上完成該事務。
REMOTE_PROC_TRANSACTIONS 是可用于替代服務器級 sp_configure remote proc trans 選項的連接級設置。
當 REMOTE_PROC_TRANSACTIONS 設置為 OFF 時,遠程存儲過程調用不能成為本地事務的一部分。遠程存儲過程所做的修改將在存儲過程完成時提交或回滾。由調用遠程存儲過程的連接發(fā)出的后續(xù) COMMIT TRANSACTION 或 ROLLBACK TRANSACTION 語句對該過程所做的處理無效。
REMOTE_PROC_TRANSACTIONS 選項是一個兼容性選項,只影響對使用 sp_addserver 定義的遠程服務器所進行的遠程存儲過程調用。有關更多信息,請參見遠程存儲過程構架。該選項不適用于在使用 sp_addlinkedserver 定義的鏈接服務器上執(zhí)行存儲過程的分布式查詢。有關更多信息,請參見分布式查詢構架。
SET REMOTE_PROC_TRANSACTIONS 的設置是在執(zhí)行或運行時設置,而不是在分析時設置。
SET REMOTE_PROC_TRANSACTIONS 權限默認授予所有用戶。
相關文章