Подключение к удаленным серверам SQL Server через Linked Server

Подключение к SQL Server удаленного SQL Server  

Сначала настраиваем коннектор

Запускаем команду odbcad32 (win+r => odbcad32)

Заходим во вкладку System DSN, нажимаем Add и добавляем коннектор ODBC Driver for SQL Server. В поле сервер указываем адрес, затем указываем юзера и пароль для входа. 

В Management Studio в Server Objects / Linked Servers создаем новый Linked Server: 

Проверяем как запрос работает:

select *  from openquery([XX.XX.98.138], 
'select top 20 * from fln1001.dbo.as_trace order by id desc')

В целом все результаты из внешнего источника лучше сохранять в табличную переменную или временную таблицу и затем уже привячным способом обрабатывать. 

Также может потребоваться, чтобы имя сервера было переменным (когда их может быть несколько экземпляров). 

Пример такого кода: 

 -- способ с заменой параметра сервера
DECLARE @OPENQUERY nvarchar(4000), @LinkedServer nvarchar(256) = '[XX.XXX.98.138]' -- имя сервера можно динамически определить
declare @t table(created nvarchar(max))
    
SET @OPENQUERY = 'SELECT * FROM OPENQUERY('+ @LinkedServer + ',''
select top 20 created from db1.dbo.as_trace order by id desc'')' 
insert into @t 
EXEC (@OPENQUERY) 

declare @s nvarchar(max) = ''	
select @s = @s + created + '<br>' from @t

Таким образом мы получили данные из удаленного SQL Server и теперь можем вывести их где то на странице (в виде таблицы, формы или просто разметки).

Также смотрите более подробную статью со скринами про удаленное подключение других баз (postgre, mysql) - https://falconspace.ru/docs/podklyuchenie-k-mysql-i-drugim-bazam

 

Страница-источник на сайте falconspace.ru