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