SET REMOTE_PROC_TRANSACTIONS (Transact-SQL)

platí pro:SQL Server

Specifikuje, že když je aktivní lokální transakce, spustí se při spuštění vzdálené uložené procedury Transact-SQL distribuovaná transakce spravovaná služba MS DTC (Microsoft Distributed Transaction Coordinator) (MS DTC).

Important

Tato funkce bude odebrána v budoucí verzi SQL Serveru. Nepoužívejte tuto funkci v nové vývojové práci a naplánujte úpravu aplikací, které tuto funkci aktuálně používají. Tato možnost je určena pro zpětnou kompatibilitu pro aplikace využívající vzdálené uložené procedury. Místo vydávání vzdálených uložených procedur používejte distribuované dotazy, které odkazují na propojené servery. Tyto jsou definovány pomocí sp_addlinkedserver.

Transact-SQL konvence syntaxe

Syntax

  
SET REMOTE_PROC_TRANSACTIONS { ON | OFF }   

Arguments

ON | VYPNOUT
Když je zapnuto, Transact-SQL distribuovaná transakce se spustí, když je vzdálená uložená procedura vykonána z lokální transakce. Při vypnutí volání vzdálených uložených procedur z lokální transakce nezahajuje Transact-SQL distribuovanou transakci.

Remarks

Když REMOTE_PROC_TRANSACTIONS je zapnuto, volání vzdálené uložené procedury spustí distribuovanou transakci a zaregistruje transakci do MS DTC. Instance, kdy SQL Server provádí vzdálené volání uložené procedury, je iniciátorem transakce a řídí dokončení transakce. Když je pro spojení vydán další příkaz COMMIT TRANSACTION nebo ROLLBACK TRANSACTION, řídicí instance požádá, aby MS DTC spravovalo dokončení distribuované transakce mezi zapojenými počítači.

Po zahájení Transact-SQL distribuované transakce lze vzdáleně volat uložené procedury na jiné instance SQL Server, které byly definovány jako vzdálené servery. Všechny vzdálené servery jsou zapojeny do Transact-SQL distribuované transakce a MS DTC zajišťuje, že transakce je dokončena proti každému vzdálenému serveru.

REMOTE_PROC_TRANSACTIONS je nastavení na úrovni připojení, které lze použít k přepsání možnosti vzdáleného transtransu na úrovni instance sp_configure vzdáleného procování .

Když REMOTE_PROC_TRANSACTIONS je VYPNUTO, vzdálené uložené procedurální volání nejsou součástí lokální transakce. Úpravy provedené vzdálenou uloženou procedurou jsou potvrzeny nebo vráceny zpět v okamžiku dokončení uložené procedury. Následné příkazy COMMIT TRANSACTION nebo ROLLBACK TRANSACTION vydané spojením, které volalo vzdálenou uloženou proceduru, nemají žádný vliv na zpracování prováděné procedurou.

Tato REMOTE_PROC_TRANSACTIONS možnost je kompatibilní a ovlivňuje pouze vzdálené uložené procedurální volání prováděná na instance SQL Server definované jako vzdálené servery využívající sp_addserver. Tato možnost se nevztahuje na distribuované dotazy, které vykonávají uloženou proceduru na instanci definované jako propojený server pomocí sp_addlinkedserver.

Nastavení je SET REMOTE_PROC_TRANSACTIONS nastaveno při spuštění nebo běhu a ne při parse.

Permissions

Vyžaduje členství ve veřejné roli .

Viz také

BEGIN DISTRIBUTED TRANSACTION (Transact-SQL)
SET Příkazy (Transact-SQL)