SET REMOTE_PROC_TRANSACTIONS (Transact-SQL)

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

Icône Lien de rubriqueConventions de la syntaxe de Transact-SQL

Syntaxe

SET REMOTE_PROC_TRANSACTIONS { ON | OFF } 

Arguments

  • OFF ou ON.
    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.

Notes

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. Pour plus d'informations, consultez Architecture des requêtes distribuées.

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.