Freigeben über


SET REMOTE_PROC_TRANSACTIONS (Transact-SQL)

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.

ms178549.note(de-de,SQL.90).gifWichtig:
Diese Option wird aus Gründen der Abwärtskompatibilität mit Anwendungen bereitgestellt, die remote gespeicherte Prozeduren verwenden. Anstelle von Aufrufen remote gespeicherter Prozeduren sollten Sie verteilte Abfragen verwenden, die auf mithilfe von sp_addlinkedserver definierte Verbindungsserver verweisen.

Themenlink (Symbol)Transact-SQL-Syntaxkonventionen

Syntax

SET REMOTE_PROC_TRANSACTIONS { ON | OFF } 

Argumente

ON | 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 auf ON festgelegt ist und eine remote gespeicherte Prozedur aufgerufen wird, wird eine verteilte Transaktion gestartet und bei MS DTC eingetragen. 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 Einstellung auf Verbindungsebene, mit der die Option sp_configure remote proc trans, die auf Serverebene gilt, außer Kraft gesetzt werden kann.

Wenn REMOTE_PROC_TRANSACTIONS auf OFF festgelegt ist, werden Aufrufe remote gespeicherter Prozeduren nicht als Teil einer lokalen Transaktion ausgeführt. 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 Option REMOTE_PROC_TRANSACTIONS ist eine Kompatibilitätsoption, die sich nur auf Aufrufe remote gespeicherter Prozeduren für SQL Server-Instanzen auswirkt, die mithilfe von sp_addserver als Remoteserver definiert wurden. 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. Weitere Informationen finden Sie unter Architektur verteilter Abfragen.

Die Einstellung von SET REMOTE_PROC_TRANSACTIONS wird zur Ausführungszeit und nicht zur Analysezeit festgelegt.

Berechtigungen

Erfordert Mitgliedschaft in der public-Rolle.

Siehe auch

Verweis

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

Andere Ressourcen

Verteilte Transact-SQL-Transaktionen
Verwenden von gebundenen Sitzungen

Hilfe und Informationen

Informationsquellen für SQL Server 2005