SET REMOTE_PROC_TRANSACTIONS (Transact-SQL)

Gäller för:SQL Server

Specificerar att när en lokal transaktion är aktiv, startar exekvering av en fjärrlagrad procedur en Transact-SQL distribuerad transaktion som hanteras av Microsoft Distributed Transaction Coordinator (MS DTC).

Important

Den här funktionen tas bort i en framtida version av SQL Server. Undvik att använda den här funktionen i nytt utvecklingsarbete och planera att ändra program som för närvarande använder den här funktionen. Detta alternativ finns för bakåtkompatibilitet för applikationer som använder fjärrlagrade procedurer. Istället för att skicka fjärranrop för lagrade procedurer, använd distribuerade frågor som refererar till länkade servrar. Dessa definieras genom att använda sp_addlinkedserver.

Transact-SQL syntaxkonventioner

Syntax

  
SET REMOTE_PROC_TRANSACTIONS { ON | OFF }   

Arguments

PÅ | OFF
När den är på startas en Transact-SQL distribuerad transaktion när en fjärrlagrad procedur körs från en lokal transaktion. När den är avstängd startar inte anrop av fjärrlagrade procedurer från en lokal transaktion en Transact-SQL distribuerad transaktion.

Remarks

När REMOTE_PROC_TRANSACTIONS är PÅ startar anrop av en fjärrlagrad propuder en distribuerad transaktion och aktiverar transaktionen med MS DTC. Den instans där SQL Server gör fjärranropet för lagrad procedur är transaktionsursprungspersonen och styr slutförandet av transaktionen. När en efterföljande COMMIT TRANSACTION- eller ROLLBACK TRANSACTION-sats utfärdas för anslutningen, begär den kontrollerande instansen att MS DTC ska hantera slutförandet av den distribuerade transaktionen mellan de inblandade datorerna.

Efter att en Transact-SQL distribuerad transaktion har startats kan fjärranrop av lagrade procedurer göras till andra instanser av SQL Server som har definierats som fjärrservrar. Alla fjärrservrar ingår i den Transact-SQL distribuerade transaktionen, och MS DTC säkerställer att transaktionen slutförs mot varje fjärrserver.

REMOTE_PROC_TRANSACTIONS är en anslutningsnivåinställning som kan användas för att åsidosätta instansnivå-sp_configure fjärrproc-trans-alternativet .

När REMOTE_PROC_TRANSACTIONS är AV blir fjärranrop inte en del av en lokal transaktion. De ändringar som görs av den fjärrlagrade proceduren genomförs eller rullas tillbaka när den lagrade proceduren slutförs. Efterföljande COMMIT TRANSACTION- eller ROLLBACK TRANSACTION-satser som utfärdas av anslutningen som anropar den fjärrlagrade proceduren har ingen effekt på den bearbetning som proceduren gör.

Alternativet REMOTE_PROC_TRANSACTIONS är ett kompatibilitetsalternativ som endast påverkar fjärrlagrade proceduranrop som görs till instanser av SQL Server definierade som fjärrservrar med sp_addserver. Alternativet gäller inte för distribuerade frågor som kör en lagrad procedur på en instans definierad som en länkad server med sp_addlinkedserver.

Inställningen av SET REMOTE_PROC_TRANSACTIONS är satt vid exekverings- eller körtid och inte vid parsetid.

Permissions

Kräver medlemskap i offentlig roll.

Se även

STARTA DISTRIBUERAD TRANSAKTION (Transact-SQL)
SET Instruktioner (Transact-SQL)