Condividi tramite


SET REMOTE_PROC_TRANSACTIONS (Transact-SQL)

Si applica a: SQL Server

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).

Importante

Questa funzionalità verrà rimossa nelle versioni future di SQL Server. Evitare di usare questa funzionalità in un nuovo progetto di sviluppo e prevedere interventi di modifica nelle applicazioni in cui è attualmente implementata. Questa opzione è disponibile per la compatibilità con le versioni precedenti per le applicazioni che usano 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.

Convenzioni relative alla 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 anche 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 .

Vedi anche

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