Да, настройте связанный сервер на одном сервере с другим. Затем вы можете просто выполнить обычный запрос с соединением. Это будет выглядеть примерно так:
SELECT t1.Col1
, t2.ColA
FROM server1Table t1
INNER JOIN SERVER2.dbname.dbo.tableName t2 ON t1.TheId = t2.TheId
это предполагает, что вы выполняете запрос на сервере Server1. Вы также можете иметь два связанных сервера и ссылаться на них с помощью [servername].[dbname].[schema].[table], а затем использовать в SQL как обычно.
В качестве альтернативы вы можете использовать OPENROWSET (но связанный сервер проще всего, если вы может настроить это). OpenRowSets выглядит так:
SELECT t1.Col1
, t2.ColA
FROM server1Table t1
INNER JOIN OPENROWSET('SQLNCLI', 'Server=Server2;Trusted_Connection=yes;',
'SELECT t2.ColA, t2.TheId FROM dbname.dbo.tableName') AS t2
ON t1.TheId = t2.TheId
а затем вы можете просто присоединиться к «а», как если бы это была локальная таблица. Под капотом он, вероятно, извлекает все данные в вашу локальную базу данных, поэтому вам следует подумать о добавлении WHERE во внутренний запрос, чтобы ограничить строки и получить только те столбцы, которые вам нужны.
person
Community
schedule
12.10.2010