2010-11-03 3 views
1

У меня есть Linked Server, установленный на моем хост-сервере: «MyLinkedServer» У меня есть SP на моем сервере «HostServer».Обновление SQL через связанный сервер

Я вызываю хранимую процедуру на HostServer, которая обновляет таблицу в DatabaseA на MyLinkedServer со значениями из таблицы в DatabaseB на MyLinkedServer.

У меня есть другие SP, которые работают нормально в одном и том же сценарии, но они делают вставки и удаляет, однако этот SP не обновляет таблицу в DatabaseA (без ошибок, только без изменений данных), и если я меняю соединения для фактического запуска SP на «MyLinkedServer» он работает без проблем.

UPDATE MyLinkedServer.DataBaseA.dbo.MyTable 
SET Column1 = db2.Column1 

FROM MyLinkedServer.DataBaseA.dbo.MyTable db1 
INNER JOIN 
     (
      SELECT TOP 1 Column1 
      FROM MyLinkedServer.DataBaseB.dbo.MyTable db2 
      WHERE db2.Id = 2 
     ) AS db2 ON db2.Id = 2 

WHERE db1.Id = 1 
+0

Можете ли вы разместить образец кода? Также это SQL Server, и если да, то какая версия? – JNK

+0

Используете ли вы какие-либо распределенные транзакции? –

+0

Нет распределенных транзакций, они упали, поскольку они не были настроены для их обработки на Linked Server. – Ben

ответ

0

Я считаю, что вам нужно будет ссылаться на псевдоним, который вы ссылаетесь в инструкции from. Влияет ли изменение

UPDATE MyLinkedServer.DataBaseA.dbo.MyTable 

в

UPDATE db2 

устранить проблему?