Cuando REMOTE_PROC_TRANSACTIONS es ON, al llamar a un procedimiento almacenado remoto se inicia una transacción distribuida y se da de alta en MS DTC.
La instancia de SQL Server que efectúa la llamada al procedimiento almacenado remoto es el originador de la transacción y controla su realización. Posteriormente, cuando se ejecuta para la conexión una instrucción COMMIT TRANSACTION o ROLLBACK TRANSACTION, la instancia que controla la transacción solicita a MS DTC que administre la realización de la transacción distribuida entre los servidores participantes.
Una vez iniciada una transacción distribuida de Transact-SQL, se pueden realizar llamadas a procedimientos almacenados remotos en otras instancias de SQL Server que se hayan definido como servidores remotos.
Todos los servidores remotos se dan de alta en la transacción distribuida de Transact-SQL y MS DTC se asegura de que la transacción se complete en cada uno de ellos.
REMOTE_PROC_TRANSACTIONS es una opción de nivel de conexión que se puede utilizar para reemplazar la opción sp_configure remote proc trans de nivel de instancia.
Cuando REMOTE_PROC_TRANSACTIONS es OFF, las llamadas a procedimientos almacenados remotos no son parte de una transacción local.
Las modificaciones realizadas por el procedimiento almacenado remoto se confirman o deshacen en el momento en que el procedimiento almacenado se completa. Si la conexión que llamó al procedimiento almacenado remoto ejecuta después instrucciones COMMIT TRANSACTION o ROLLBACK TRANSACTION, éstas no tendrán efecto en el procesamiento realizado por el procedimiento.
REMOTE_PROC_TRANSACTIONS es una opción de compatibilidad que afecta solo a las llamadas a procedimientos almacenados remotos que se realizan en instancias de SQL Server definidas como servidores remotos mediante sp_addserver.
Esta opción no se aplica a las consultas distribuidas que ejecutan un procedimiento almacenado en una instancia definida como servidor vinculado mediante sp_addlinkedserver.
La opción SET REMOTE_PROC_TRANSACTIONS se establece en tiempo de ejecución, no en tiempo de análisis.