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).
Importante: |
---|
Esta opción se proporciona por compatibilidad con versiones anteriores de aplicaciones que utilizan procedimientos almacenados remotos. En lugar de emitir llamadas a procedimientos almacenados remotos, utilice consultas distribuidas que hagan referencia a servidores vinculados, que se definen mediante sp_addlinkedserver. |
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.
Notas
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 sólo 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. Para obtener más información, vea Arquitectura de consultas distribuidas.
La opción SET REMOTE_PROC_TRANSACTIONS se establece en tiempo de ejecución, no en tiempo de análisis.
Permisos
Debe pertenecer a la función public.
Vea también
Referencia
BEGIN DISTRIBUTED TRANSACTION (Transact-SQL)
SET (Transact-SQL)
Otros recursos
Transacciones distribuidas de Transact-SQL
Usar sesiones enlazadas