Condividi tramite


SET REMOTE_PROC_TRANSACTIONS (Transact-SQL)

Specifica che, quando una transazione locale è attiva, l'esecuzione di una stored procedure remota comporta l'avvio di una transazione distribuita Transact-SQL gestita da Microsoft Distributed Transaction Coordinator (MS DTC).

Nota importanteImportante

Questa funzionalità verrà rimossa a partire dalla prossima versione di Microsoft SQL Server. Non utilizzare questa funzionalità in un nuovo progetto di sviluppo e modificare non appena possibile le applicazioni in cui è attualmente implementata. Questa opzione è disponibile per la compatibilità con le versioni precedenti per le applicazioni che utilizzano stored procedure remote. Anziché pubblicare chiamate della stored procedure remota, utilizzare query distribuite che fanno riferimento a server collegati che vengono definiti tramite sp_addlinkedserver.

Icona di collegamento a un argomento Convenzioni della sintassi Transact-SQL

Sintassi

SET REMOTE_PROC_TRANSACTIONS { ON | OFF } 

Argomenti

  • ON | OFF
    Quando è impostata su ON, viene avviata una transazione distribuita Transact-SQL quando in una transazione locale viene eseguita una stored procedure remota. Quando è impostata su OFF, la chiamata di una stored procedure remota in una transazione locale non avvia una transazione distribuita Transact-SQL.

Osservazioni

Quando l'opzione REMOTE_PROC_TRANSACTIONS è impostata su ON, la chiamata di una stored procedure remota comporta l'avvio di una transazione distribuita e l'integrazione della transazione in MS DTC. L'istanza di SQL Server in cui viene chiamata la stored procedure remota corrisponde all'origine della transazione e ne controlla il completamento. Quando per la connessione viene successivamente eseguita un'istruzione COMMIT TRANSACTION o ROLLBACK TRANSACTION, l'istanza di controllo richiede che il completamento della transazione distribuita nei computer interessati venga gestito da MS DTC.

Dopo l'avvio di una transazione distribuita Transact-SQL, è possibile chiamare stored procedure remote in altre istanze di SQL Server che sono state definite come server remoti. Tutti i server remoti sono integrati nella transazione distribuita Transact-SQL. MS DTC assicura inoltre che la transazione venga completata in ogni server remoto.

L'opzione REMOTE_PROC_TRANSACTIONS è un'impostazione a livello di connessione che consente di ignorare l'opzione sp_configure remote proc trans a livello di istanza.

Quando l'opzione REMOTE_PROC_TRANSACTIONS viene impostata su OFF, le chiamate di stored procedure remote non diventano parte di una transazione locale. Al completamento della stored procedure remota viene eseguito il commit o il rollback delle modifiche apportate dalla stored procedure. Le successive istruzioni COMMIT TRANSACTION o ROLLBACK TRANSACTION eseguite dalla connessione che ha chiamato la stored procedure remota non hanno alcun effetto sull'elaborazione eseguita dalla procedura.

L'opzione REMOTE_PROC_TRANSACTIONS è disponibile per compatibilità con le versioni precedenti e ha effetto solo sulle chiamate di stored procedure remote indirizzate a istanze di SQL Server che sono state definite come server remoti tramite sp_addserver. L'opzione non viene applicata alle query distribuite che eseguono una stored procedure in un'istanza definita come server collegato tramite sp_addlinkedserver.

L'opzione SET REMOTE_PROC_TRANSACTIONS viene impostata in fase di esecuzione, non in fase di analisi.

Autorizzazioni

È richiesta l'appartenenza al ruolo public.

Vedere anche

Riferimento

BEGIN DISTRIBUTED TRANSACTION (Transact-SQL)

Istruzioni SET (Transact-SQL)