SET REMOTE_PROC_TRANSACTIONS (Transact-SQL)

Van toepassing op:SQL Server

Specificeert dat wanneer een lokale transactie actief is, het uitvoeren van een externe opgeslagen procedure een Transact-SQL gedistribueerde transactie start die wordt beheerd door Microsoft Distributed Transaction Coordinator (MS DTC).

Important

Deze functie wordt verwijderd in een toekomstige versie van SQL Server. Vermijd het gebruik van deze functie in nieuwe ontwikkelwerkzaamheden en plan om toepassingen te wijzigen die momenteel gebruikmaken van deze functie. Deze optie wordt aangeboden voor achterwaartse compatibiliteit voor applicaties die gebruikmaken van externe opgeslagen procedures. In plaats van externe stored procedure-aanroepen te doen, gebruik gedistribueerde queries die verwijzen naar gekoppelde servers. Deze worden gedefinieerd door gebruik te maken van sp_addlinkedserver.

Transact-SQL syntaxis-conventies

Syntax

  
SET REMOTE_PROC_TRANSACTIONS { ON | OFF }   

Arguments

OP | OFF
Wanneer ON is, wordt een Transact-SQL gedistribueerde transactie gestart wanneer een externe opgeslagen procedure wordt uitgevoerd vanuit een lokale transactie. Wanneer UIT is, start het aanroepen van externe opgeslagen procedures van een lokale transactie geen Transact-SQL gedistribueerde transactie.

Remarks

Wanneer REMOTE_PROC_TRANSACTIONS AAN is, start het aanroepen van een remote stored procedure een gedistribueerde transactie en schakelt de transactie in bij MS DTC. De instantie van SQL Server die de remote stored procedure call uitvoert, is de transactie-originator en regelt de voltooiing van de transactie. Wanneer een volgende COMMIT TRANSACTION- of ROLLBACK TRANSACTION-instructie voor de verbinding wordt uitgegeven, vraagt de controlerende instantie dat MS DTC de voltooiing van de gedistribueerde transactie over de betrokken computers beheert.

Nadat een Transact-SQL gedistribueerde transactie is gestart, kunnen remote stored procedure-aanroepen worden gedaan naar andere instanties van SQL Server die als remote servers zijn gedefinieerd. De externe servers zijn allemaal opgenomen in de Transact-SQL gedistribueerde transactie, en MS DTC zorgt ervoor dat de transactie wordt uitgevoerd voor elke externe server.

REMOTE_PROC_TRANSACTIONS is een verbindingsinstelling die kan worden gebruikt om de instantie-niveau sp_configure remote proc trans-optie te overschrijven.

Wanneer REMOTE_PROC_TRANSACTIONS UIT is, worden remote stored procedure-aanroepen geen onderdeel van een lokale transactie. De aanpassingen die door de remote stored procedure worden aangebracht, worden vastgehouden of teruggedraaid op het moment dat de opgeslagen procedure is voltooid. Latere COMMIT TRANSACTION- of ROLLBACK TRANSACTION-instructies die door de verbinding worden uitgegeven en de remote stored procedure aanriepen, hebben geen effect op de verwerking die door de procedure wordt uitgevoerd.

De REMOTE_PROC_TRANSACTIONS optie is een compatibiliteitsoptie die alleen externe stored procedure-aanroepen treft die worden gedaan naar instanties van SQL Server gedefinieerd als externe servers met sp_addserver. De optie geldt niet voor gedistribueerde queries die een opgeslagen procedure uitvoeren op een instantie die is gedefinieerd als een gekoppelde server met behulp van sp_addlinkedserver.

De instelling van SET REMOTE_PROC_TRANSACTIONS wordt ingesteld bij execute- of runtime en niet bij parsetijd.

Permissions

Vereist lidmaatschap van de openbare rol.

Zie ook

BEGIN GEDISTRIBUEERDE TRANSACTIE (Transact-SQL)
SET Instructies (Transact-SQL)