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 comptatibilité ascendante concernant les applications utilisant des procédures stockées distantes. Au lieu d'émettre des appels de procédure stockée distante, utilisez des requêtes distribuées faisant référence à des serveurs liés, définis à l'aide de sp_addlinkedserver. |
Conventions 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.
Voir aussi
Référence
BEGIN DISTRIBUTED TRANSACTION (Transact-SQL)
SET (Transact-SQL)
Autres ressources
Transactions distribuées Transact-SQL
Utilisation de sessions associées