SET REMOTE_PROC_TRANSACTIONS (Transact-SQL)

Указывает, что в момент, когда активна локальная транзакция, выполнение удаленной хранимой процедуры запускает распределенную транзакцию Transact-SQL, управляемую координатором распределенных транзакций (Майкрософт) (MS DTC).

Важное примечаниеВажно!

Этот параметр предоставлен, чтобы обеспечить обратную совместимость для приложений, использующих удаленные хранимые процедуры. Вместо вызова удаленных хранимых процедур используйте распределенные запросы, ссылающиеся на связанные серверы. Они определяются с помощью хранимой процедуры sp_addlinkedserver.

Значок ссылки на разделСинтаксические обозначения в Transact-SQL

Синтаксис

SET REMOTE_PROC_TRANSACTIONS { ON | OFF } 

Аргументы

  • ON | OFF
    Если указан аргумент ON, распределенная транзакция Transact-SQL запускается при выполнении удаленной хранимой процедуры из локальной транзакции. Если указан аргумент OFF, вызов удаленных хранимых процедур из локальной транзакции не приводит к запуску распределенной транзакции Transact-SQL.

Замечания

Если REMOTE_PROC_TRANSACTIONS установлен на ON, вызов удаленной хранимой процедуры приводит к запуску распределенной транзакции и привлекает к выполнению транзакции MS DTC. Экземпляр SQL Server, вызывающий удаленную хранимую процедуру, является инициатором транзакции и контролирует ее завершение. Когда последующая инструкция COMMIT TRANSACTION или ROLLBACK TRANSACTION выдается для соединения, контролирующий экземпляр предписывает MS DTC управлять завершением распределенной транзакции на всех вовлеченных компьютерах.

После запуска распределенной транзакции Transact-SQL могут выполняться вызовы удаленных хранимых процедур обращениями к другим экземплярам SQL Server, определенным в качестве удаленных серверов. Все удаленные серверы связаны с распределенной транзакцией Transact-SQL, и MS DTC обеспечивает завершение транзакции на каждом из удаленных серверов.

REMOTE_PROC_TRANSACTIONS является установкой на уровне соединения, которая может использоваться для переустановки параметра sp_configure remote proc trans на уровне экземпляра.

Если REMOTE_PROC_TRANSACTIONS установлен на OFF, вызовы удаленных хранимых процедур не становятся частью локальной транзакции. Изменения, произведенные удаленной хранимой процедурой, подтверждаются или откатываются в момент завершения выполнения хранимой процедуры. Последующие инструкции COMMIT TRANSACTION или ROLLBACK TRANSACTION, выданные соединением, которым была вызвана удаленная хранимая процедура, не оказывают воздействия на обработку, выполненную процедурой.

Параметр REMOTE_PROC_TRANSACTIONS является параметром совместимости, влияющим только на вызовы удаленных хранимых процедур, направленные экземплярам SQL Server, определенным в качестве удаленных серверов, с использованием sp_addserver. Параметр не применяется к распределенным запросам, которые выполняют хранимую процедуру на экземпляре, определенном в качестве связанного сервера с использованием процедуры sp_addlinkedserver. Дополнительные сведения см. в разделе Архитектура распределенных запросов.

Параметр SET REMOTE_PROC_TRANSACTIONS устанавливается во время выполнения или запуска, но не во время синтаксического анализа.

Разрешения

Необходимо членство в роли public.