Да, настроить связанный сервер на одном сервере с другим.Тогда вы можете просто сделать обычный запрос с объединением.Это будет выглядеть примерно так:
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
, и тогда вы можете просто присоединиться к 'a', как будто это локальная таблица.Под капотом он, вероятно, перетягивает все данные в вашу локальную базу данных, поэтому вам следует рассмотреть возможность добавления WHERE к внутреннему запросу, чтобы ограничить строки и получить только нужные вам столбцы.