Compartir a través de


SET REMOTE_PROC_TRANSACTIONS (Transact-SQL)

Especifica que, cuando haya una transacción local activa, la ejecución de un procedimiento almacenado remoto iniciará una transacción distribuida de Transact-SQL administrada por el Coordinador de transacciones distribuidas de Microsoft (MS DTC).

Nota importanteImportante

Esta característica se quitará en la versión siguiente de Microsoft SQL Server. No utilice esta característica en nuevos trabajos de desarrollo y modifique lo antes posible las aplicaciones que actualmente la utilizan. Esta opción se proporciona por compatibilidad con versiones anteriores de aplicaciones que utilizan procedimientos almacenados remotos. En lugar de emitir llamadas de procedimiento almacenado remotas, utilice consultas distribuidas que hagan referencia a los servidores vinculados. Los servidores vinculados se definen mediante sp_addlinkedserver.

Icono de vínculo a temas Convenciones de sintaxis de Transact-SQL

Sintaxis

SET REMOTE_PROC_TRANSACTIONS { ON | OFF } 

Argumentos

  • ON | OFF
    Cuando es ON, al ejecutarse un procedimiento almacenado remoto desde una transacción local, se inicia una transacción distribuida de Transact-SQL. Cuando es OFF, al llamar a procedimientos almacenados remotos desde una transacción local, no se inicia una transacción distribuida de Transact-SQL.

Comentarios

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.

Permisos

Debe pertenecer al rol public.

Vea también

Referencia

BEGIN DISTRIBUTED TRANSACTION (Transact-SQL)

Instrucciones SET (Transact-SQL)