Это возможно. Вы можете использовать явный BEGIN DISTRIBUTED TRANSACTION
в своей управляющей процедуре или просто запустить обычную транзакцию и полагаться на DTC, чтобы повысить транзакцию до распределенной в тот момент, когда вы переходите на связанный сервер, это происходит автоматически. См. Распределенные транзакции Transact-SQL в MSDN.
Однако я должен предупредить вас, что это скользкий склон. Количество сбоев и время простоя резко возрастают, как только вы выводите на экран DQ (распределенные запросы). Если у вас есть 99,5% серверов времени бездействия (т. Е. 43 часа простоя в год) и ваш запрос затрагивает 5 серверов, ваша доступность становится 97,5% (216 часов простоя в год). При 10 серверах время работы увеличивается на 95% (428 часов простоя в год). Такие вещи, как управление развертыванием исправлений ОС, обновление SP движка или обслуживание приложений (думаю, перестройка индекса и т. Д.), Становятся кошмаром для организации и координации.
Для этого нужно разъединить серверы, использовать что-то вроде Service Broker вместо DQ.