SET REMOTE_PROC_TRANSACTIONS (Transact-SQL)

 

ESTE TEMA SE APLICA A:síSQL Server (a partir de 2008)noBase de datos SQL de AzurenoAlmacenamiento de datos SQL de Azure noAlmacenamiento de datos paralelos

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

System_CAPS_ICON_important.jpg Importante


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. Se definen mediante el uso de sp_addlinkedserver.

Se aplica a: SQL Server (desdeSQL Server 2008 hasta la versión actual).

Topic link icon Convenciones de sintaxis de Transact-SQL

  
SET REMOTE_PROC_TRANSACTIONS { ON | OFF }   

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.

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 configuración de nivel de conexión que puede utilizarse para invalidar el nivel de instancia transacciones de procedimientos remotos sp_configure opción.

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.

La opción REMOTE_PROC_TRANSACTIONS es una opción de compatibilidad que afecta a llamadas a procedimientos almacenados remotos solo realizadas en instancias de SQL Server definido como servidores remotos con sp_addserver. La opción no se aplica a las consultas distribuidas que ejecutan un procedimiento almacenado en una instancia definida como un 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.

Debe pertenecer al rol public .

BEGIN DISTRIBUTED TRANSACTION (Transact-SQL)
Instrucciones SET (Transact-SQL)

Adiciones de comunidad

AGREGAR
Mostrar: