Transact-SQL 参考

SET REMOTE_PROC_TRANSACTIONS

指定当本地事务活动时,如果执行远程存储过程,将启动由 Microsoft 分布式事务管理器 (MS DTC) 管理的 Transact-SQL 分布式事务。

语法

SET REMOTE_PROC_TRANSACTIONS { ON | OFF }

参数

ON | OFF

当设置为 ON 时,从本地事务执行远程存储过程时将启动 Transact-SQL 分布式事务。当设置为 OFF 时,从本地事务调用远程存储过程将不启动 Transact-SQL 分布式事务。

注释

当 REMOTE_PROC_TRANSACTIONS 设置为 ON 时,调用远程存储过程将启动分布式事务,并用 MS DTC 登记该事务。调用远程存储过程的服务器是事务创建者,负责控制事务的完成。当连接发出后续 COMMIT TRANSACTION 或 ROLLBACK TRANSACTION 语句时,主控服务器请求 MS DTC 在所涉及的服务器间管理分布式事务的完成。

启动 Transact-SQL 分布式事务后,可以对其它远程服务器调用远程存储过程。远程服务器全部登记在 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 定义的远程服务器所进行的远程存储过程调用。有关更多信息,请参见远程存储过程构架。该选项不适用于在使用 sp_addlinkedserver 定义的链接服务器上执行存储过程的分布式查询。有关更多信息,请参见分布式查询构架

SET REMOTE_PROC_TRANSACTIONS 的设置是在执行或运行时设置,而不是在分析时设置。

权限

SET REMOTE_PROC_TRANSACTIONS 权限默认授予所有用户。

请参见

BEGIN DISTRIBUTED TRANSACTION

分布式事务

SET

事务