SET REMOTE_PROC_TRANSACTIONS (Transact-SQL)

Gilt für:SQL Server

Gibt an, dass durch das Ausführen einer remote gespeicherten Prozedur, sofern eine lokale Transaktion aktiv ist, eine verteilte Transact-SQL-Transaktion gestartet wird, die von Microsoft Distributed Transaction Manager (MS DTC) verwaltet wird.

Wichtig

Diese Funktion wird in einer zukünftigen Version von SQL Serverentfernt. Nutzen Sie diese Funktionen bei Neuentwicklungen nicht mehr, und planen Sie die Änderung von Anwendungen, die diese Funktion zurzeit verwenden. Diese Option wird aus Gründen der Abwärtskompatibilität mit Anwendungen bereitgestellt, die remote gespeicherte Prozeduren verwenden. Verwenden Sie statt dem Aufruf von remote gespeicherten Prozeduren verteilte Abfragen, die auf Verbindungsserver verweisen. Diese werden mithilfe von sp_addlinkedserver definiert.

Transact-SQL-Syntaxkonventionen

Syntax

  
SET REMOTE_PROC_TRANSACTIONS { ON | OFF }   

Argumente

AUF | OFF
Bei ON wird eine verteilte Transact-SQL-Transaktion gestartet, wenn eine remote gespeicherte Prozedur von einer lokalen Transaktion aus ausgeführt wird. Bei OFF wird keine verteilte Transact-SQL-Transaktion gestartet, wenn eine remote gespeicherte Prozedur von einer lokalen Transaktion aus aufgerufen wird.

Hinweise

Wenn REMOTE_PROC_TRANSACTIONS ON ist, startet das Aufrufen einer entfernten gespeicherten Prozedur eine verteilte Transaktion und listet die Transaktion mit MS DTC auf. Die SQL Server-Instanz, die die remote gespeicherte Prozedur aufruft, wird als Transaktionsurheber bezeichnet und steuert die Beendigung der Transaktion. Wenn im Anschluss eine COMMIT TRANSACTION- oder ROLLBACK TRANSACTION-Anweisung für die Verbindung ausgegeben wird, fordert die steuernde Instanz MS DTC auf, die Beendigung der verteilten Transaktion auf den beteiligten Computern zu verwalten.

Nachdem eine verteilte Transact-SQL-Transaktion gestartet wurde, können Aufrufe remote gespeicherter Prozeduren für weitere SQL Server-Instanzen erfolgen, die als Remoteserver definiert wurden. Alle Remoteserver werden in der verteilten Transact-SQL-Transaktion eingetragen, und MS DTC stellt sicher, dass die Transaktion für jeden Remoteserver abgeschlossen wird.

REMOTE_PROC_TRANSACTIONS ist eine Verbindungsebene-Einstellung, die verwendet werden kann, um die Option auf Instanzebene sp_configure Remote Proc Trans zu überschreiben.

Wenn REMOTE_PROC_TRANSACTIONS AUS ist, werden entfernte Speicherprozeduraufrufe nicht Teil einer lokalen Transaktion. Für die Änderungen, die von der remote gespeicherten Prozedur vorgenommen werden, wird ein Commit oder ein Rollback durchgeführt, wenn die gespeicherte Prozedur abgeschlossen wird. Weitere COMMIT TRANSACTION- oder ROLLBACK TRANSACTION-Anweisungen der Verbindung, die die remote gespeicherte Prozedur aufgerufen hat, wirken sich nicht auf die von der Prozedur durchgeführte Verarbeitung aus.

Die REMOTE_PROC_TRANSACTIONS Option ist eine Kompatibilitätsoption, die nur entfernte Speicherprozeduraufrufe betrifft, die an Instanzen von SQL Server als entfernte Server mit sp_addserver definiert sind. Die Option gilt nicht für verteilte Abfragen, die eine gespeicherte Prozedur für eine Instanz ausführen, die mit sp_addlinkedserver als Verbindungsserver definiert wurde.

Die Einstellung wird SET REMOTE_PROC_TRANSACTIONS zur Ausführung oder Laufzeit und nicht zur Analysezeit festgelegt.

Berechtigungen

Erfordert die Mitgliedschaft in der public -Rolle.

Weitere Informationen

STARTEN DER VERTEILTEN TRANSAKTION (Transact-SQL)
SET Anweisungen (Transact-SQL)