2013-05-24 3 views
0

У меня очень простой скрипт. Цель состоит в том, чтобы вытащить данные со связанного сервера в таблицу в другую базу данныхOpenQuery в локальную таблицу

DECLARE @SQLString VARCHAR(2000) 

SET @SQLString = 'SELECT * from OPENQUERY(MyLinkedServer, 
    ''SELECT 
    ... 
    ... 
    FROM SomeSchema.SomeTable'')' 

INSERT INTO MySchema.MyTable 
      (
       ............ 
      ) 
      EXEC(@SQLString) 

Каким образом это выполняется? Если я просто настрою @SQLString и EXEC, результаты будут отображаться на моем экране. Означает ли это, что запуск сценария выше приведет к тому, что данные со связанного сервера будут подключены к моей локальной машине, а затем к моей базе данных sql-сервера или данные сразу перейдут с моего связанного сервера на сервер sql?

ответ

1

Данные всегда идут от связанного сервера к SQL Server, прежде чем перейти к клиенту (если применимо), как показано в документации для distributed queries и linked servers. Поскольку ваш клиент подключен только к SQL Server, а не напрямую к связанному серверу, это единственный способ, которым он может работать.

Смежные вопросы