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).

ms178549.note(es-es,SQL.90).gifImportante:
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.

Icono de vínculo a temasConvenciones 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

Ayuda e información

Obtener ayuda sobre SQL Server 2005