Compartilhar via


SET REMOTE_PROC_TRANSACTIONS (Transact-SQL)

Aplica-se: SQL Server

Especifica que quando uma transação local está ativa, a execução de um procedimento armazenado remoto inicia uma transação distribuída Transact-SQL, gerenciada pelo MS DTC (Coordenador de Transações Distribuídas da Microsoft).

Importante

Esse recurso será removido em uma versão futura do SQL Server. Evite usar esse recurso em desenvolvimentos novos e planeje modificar os aplicativos que atualmente o utilizam. Essa opção é fornecida para compatibilidade com versões anteriores, para aplicativos que usam procedimentos armazenados remotos. Em vez de emitir chamadas de procedimento armazenado remotas, use consultas distribuídas, que fazem referência a servidores vinculados. Elas são definidas usando sp_addlinkedserver.

Convenções de sintaxe de Transact-SQL

Sintaxe

  
SET REMOTE_PROC_TRANSACTIONS { ON | OFF }   

Argumentos

ON | OFF
Quando ON, uma transação distribuída Transact-SQL é iniciada quando um procedimento armazenado remoto é executado de uma transação local. Quando OFF, chamar um procedimento armazenado remoto de uma transação local não origina uma transação distribuída Transact-SQL.

Comentários

Quando REMOTE_PROC_TRANSACTIONS está ON, chamar um procedimento remoto armazenado irá iniciar uma transação distribuída e inscreverá a transação com o MS DTC. A instância do SQL Server que chama o procedimento armazenado remoto é o que origina a transação e controla a conclusão da transação. Quando as instruções subsequentes COMMIT TRANSACTION ou ROLLBACK TRANSACTION são emitidas para a conexão, a instância controladora solicita que o MS DTC gerencie a conclusão da transação distribuída em todas os computadores envolvidos.

Depois que uma transação distribuída Transact-SQL foi iniciada, é possível fazer chamadas de procedimento armazenado remoto a outras instâncias do SQL Server, que foram definidas como servidores remotos. Os servidores remotos são todos inscritos na transação distribuída do Transact-SQL, e o MS DTC assegura que a transação seja completada em cada servidor remoto.

REMOTE_PROC_TRANSACTIONS é uma configuração no nível de conexão que pode ser usada para substituir a opção em nível de instância sp_configure remote proc trans.

Quando REMOTE_PROC_TRANSACTIONS estiver OFF, chamadas de procedimento armazenado remotas não farão parte de uma transação local. As modificações feitas pelo procedimento armazenado remoto estão confirmadas ou revertidas na ocasião em que o procedimento armazenado se completa. Instruções COMMIT TRANSACTION ou ROLLBACK TRANSACTION subsequentes, emitidas pela conexão que chamou o procedimento armazenado remoto não têm nenhum efeito no processamento feito pelo procedimento.

A opção REMOTE_PROC_TRANSACTIONS é uma opção de compatibilidade que afeta apenas chamadas remotas de procedimento armazenado feitas para instâncias do SQL Server definidas como servidor remoto usando sp_addserver. A opção não se aplica a consultas distribuídas que executem um procedimento armazenado em uma instância definida como servidor vinculado usando sp_addlinkedserver.

A configuração de SET REMOTE_PROC_TRANSACTIONS é definida na execução ou no tempo de execução, e não no momento da análise.

Permissões

Requer associação à função pública .

Consulte Também

BEGIN DISTRIBUTED TRANSACTION (Transact-SQL)
Instruções SET (Transact-SQL)