Partager via


SET REMOTE_PROC_TRANSACTIONS (Transact-SQL)

S'applique à : SQL Server

Spécifie que lorsqu'une transaction locale est active, l'exécution d'une procédure stockée distante démarre une transaction distribuée Transact-SQL gérée par Microsoft Distributed Transaction Coordinator (MS DTC).

Important

Cette fonctionnalité sera supprimée dans une version future de SQL Server. Évitez d'utiliser cette fonctionnalité dans de nouveaux travaux de développement, et prévoyez de modifier les applications qui utilisent actuellement cette fonctionnalité. Cette option est fournie pour la compatibilité descendante concernant les applications utilisant des procédures stockées distantes. Au lieu de publier des appels des procédures stockées distantes, utilisez des requêtes distribuées qui font référence à des serveurs liés. Ceux-ci sont définis au moyen de sp_addlinkedserver.

Conventions de la syntaxe Transact-SQL

Syntaxe

  
SET REMOTE_PROC_TRANSACTIONS { ON | OFF }   

Arguments

ON | OFF
Si l'option est activée (ON), une transaction distribuée Transact-SQL est démarrée lorsqu'une procédure stockée distante est exécutée à partir d'une transaction locale. Si elle est désactivée, l'appel d'une procédure stockée distante depuis une transaction locale n'entraîne pas le démarrage d'une transaction distribuée Transact-SQL.

Remarques

Si REMOTE_PROC_TRANSACTIONS est défini sur ON, l'appel d'une procédure stockée distante démarre une transaction distribuée et enregistre la transaction dans MS DTC. L'instance de SQL Server appelant la procédure stockée distante constitue l'élément créateur de la transaction et qui contrôle l'exécution jusqu'à son terme. Si une instruction COMMIT TRANSACTION ou ROLLBACK TRANSACTION est ensuite émise pour la connexion, le serveur de contrôle demande à MS DTC de gérer l'achèvement de la transaction distribuée sur tous les ordinateurs concernés.

Une fois la transaction distribuée Transact-SQL démarrée, des appels de procédures stockées distantes peuvent être émis vers d'autres instances de SQL Server qui n'ont pas été définies en tant que serveurs distants. Les serveurs distants sont tous enregistrés dans la transaction distribuée Transact-SQL et MS DTC s'assure que la transaction est exécutée jusqu'à son terme sur chaque serveur distant.

REMOTE_PROC_TRANSACTIONS est un paramètre de connexion qui peut être utilisé pour remplacer l’option sp_configure remote proc trans au niveau de l’instance.

Lorsque REMOTE_PROC_TRANSACTIONS est défini sur OFF, les appels de procédures stockées distantes ne sont pas inclus dans une transaction locale. Les modifications effectuées par la procédure stockée distante sont validées ou annulées une fois celle-ci exécutée. Toute instruction COMMIT TRANSACTION ou ROLLBACK TRANSACTION ultérieure émise par la connexion ayant appelé la procédure stockée distante n'a aucun effet sur le traitement effectué par la procédure.

REMOTE_PROC_TRANSACTIONS est une option de compatibilité qui affecte uniquement les appels de procédures stockées distantes émis vers des instances de SQL Server définies en tant que serveurs distants à l’aide de sp_addserver. Cette option ne s’applique pas aux requêtes distribuées qui exécutent une procédure stockée sur une instance définie en tant que serveur lié à l’aide de sp_addlinkedserver.

L'option SET REMOTE_PROC_TRANSACTIONS est définie lors de l'exécution, et non pas durant l'analyse.

Autorisations

Nécessite l'appartenance au rôle public .

Voir aussi

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