После поиска в Google и регистрации в MS documenation (http://msdn.microsoft.com/en-us/library/ms188279.aspx) на связанных серверах я все еще не мог получить ясный ответ на следующий вопрос. Я думаю об объединении двух SQL-серверов, поэтому я могу создать подмножество данных из исходного БД и вставить его в выходной БД (с повторными проверками перед вставкой), но я не знаю, как MSSQL обрабатывает запросы, которые используют связанные базы данных.Всегда ли MSSQL копирует таблицы при использовании Linked Server
Насколько я знаю, следующий запрос приведет к LocalServer загрузке FarAwayTable, а затем выполнение запроса на местном уровне (который убивает для исполнения в моем случае):
SELECT
f.*
FROM
FarAwayServer.FarAwayDB.dbo.FarAwayTable f,
LocalServer.LocalDb.dbo.LocalTable l
WHERE
f.ID = l.ID
Мой вопрос, будет MSSQL делать то же самое для следующего запроса или будет только загрузить результат (исполняющий весь запрос на FarAwayServer):
SELECT
*
FROM
FarAwayServer.FarAwayDB.dbo.FarAwayTable f
WHERE
f.ID = 1
Спасибо, догадывался я должен буду писать запросы без параметров (OPENQUERY/OpenRowset);). – Rob
@Rob Верьте мне, я знаю боль, также вам нужно быть особенно осторожным в отношении безопасности, чтобы избежать инъекций. – tpeczek
Ну, по крайней мере, вставки могут быть написаны без OPENQUERY :) – Rob