Compartilhar via


SET REMOTE_PROC_TRANSACTIONS (Transact-SQL)

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

Observação importanteImportante

Esse recurso será removido na próxima versão do Microsoft SQL Server. Não utilize esse recurso em desenvolvimentos novos e modifique, assim que possível, 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. Estes são definidos usando sp_addlinkedserver.

Ícone de vínculo de tópico Convenções da sintaxe 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 a nível de servidor 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 de procedimentos armazenados remotos 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 na função pública.

Consulte também

Referência

BEGIN DISTRIBUTED TRANSACTION (Transact-SQL)

Instruções SET (Transact-SQL)