Share via


SET REMOTE_PROC_TRANSACTIONS (Transact-SQL)

指定當本機交易在使用中,執行遠端預存程序會啟動一項 Microsoft 分散式交易協調器 (MS DTC) 所管理的 Transact-SQL 分散式交易。

重要注意事項重要事項

這個選項專用來相容於使用遠端預存程序的舊版應用程式。請改用參考連結伺服器的分散式查詢,不再發出遠端預存程序呼叫。這些伺服器是利用 sp_addlinkedserver 所定義。

主題連結圖示Transact-SQL 語法慣例

語法

SET REMOTE_PROC_TRANSACTIONS { ON | OFF } 

引數

  • ON | OFF
    如果設為 ON,當從本機交易執行遠端預存程序時,會啟動 Transact-SQL 分散式交易。如果設為 OFF,當從本機交易呼叫遠端預存程序時,並不會啟動 Transact-SQL 分散式交易。

備註

當 REMOTE_PROC_TRANSACTIONS 是 ON 時,呼叫預存程序會啟動一項分散式交易,且會利用 MS DTC 來編列這項交易。發出遠端預存程序呼叫的 SQL Server 執行個體是交易發起者,它會控制交易的完成。當發出連接的後續 COMMIT TRANSACTION 或 ROLLBACK TRANSACTION 陳述式時,負責控制的執行個體會要求 MS DTC 跨越所涉及的各部電腦來管理分散式交易的完成。

在啟動 Transact-SQL 分散式交易之後,會向已定義為遠端伺服器的其他 SQL Server 執行個體發出遠端預存程序呼叫。所有遠端伺服器都會編列在 Transact-SQL 分散式交易中,MS DTC 會確保已針對每部遠端伺服器來完成交易。

REMOTE_PROC_TRANSACTIONS 是一個連接層級的設定,可用來覆寫執行個體層級的 sp_configure remote proc trans 選項。

當 REMOTE_PROC_TRANSACTIONS 是 OFF 時,遠端預存程序呼叫不會成為本機交易的一部分。當遠端預存程序完成時,會認可或回復它所進行的修正。呼叫遠端預存程序之連接所發出的後續 COMMIT TRANSACTION 或 ROLLBACK TRANSACTION 陳述式,對於程序所完成的處理,不會有任何作用。

REMOTE_PROC_TRANSACTIONS 選項是一個相容性選項,它只會影響針對利用 sp_addserver 來定義為遠端伺服器的 SQL Server 執行個體所發出的遠端預存程序呼叫。這個選項不適合在利用 sp_addlinkedserver 來定義為連結伺服器的執行個體上,執行預存程序的分散式查詢。如需詳細資訊,請參閱<分散式查詢結構>。

SET REMOTE_PROC_TRANSACTIONS 的設定是在執行階段進行設定,而不是在剖析階段進行設定。

權限

需要 public 角色中的成員資格。