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)