Вот пример ...
соединение с первым сервером, и запустить этот скрипт
CREATE DATABASE [DatabaseA];
GO
CREATE TABLE [DatabaseA].[dbo].[TableA] (Id int, ValueA varchar(10));
INSERT INTO [DatabaseA].[dbo].[TableA] VALUES(1,'a'),(2,'b'),(3,'c');
Затем подключить ко второму серверу, и запустите это
CREATE DATABASE [DatabaseB];
GO
CREATE TABLE [DatabaseB].dbo.[TableB] (Id int, ValueB varchar(10));
INSERT INTO [DatabaseB].dbo.[TableB] VALUES(1,'A'),(2,'B'),(3,'B');
В связи с первым сервером мы создаем ссылку на е второй, как этот
EXEC master.dbo.sp_addlinkedserver
@server = N'LINKTOB'
,@srvproduct=N'B'
,@provider=N'SQLOLEDB'
,@datasrc=N'<NAME OF SERVER CONTAINING DatabaseB>';
Обратите внимание, что вам нужно изменить значение @datasrc в соответствии с вашей средой.
Теперь мы можем на первом сервере запустить запрос, как это, используя данные из двух отдельных серверов в одном запросе
SELECT
a.Id
,a.ValueA
,b.ValueB
FROM
[DatabaseA].[dbo].[TableA] AS a
INNER JOIN [LINKTOB].[DatabaseB].[dbo].[TableB] AS b ON a.Id = b.Id
Результат должен выглядеть следующим образом
Если оба сервера находятся в одном домене с одинаковыми настройками безопасности, все должно работать без каких-либо дальнейших изменений. Если нет, посмотрите Management Studio под Объекты сервера - Связанные серверы - LINKTOB. Открытые свойства для LINKTOB и посмотрите на Безопасность -tab.
Я думаю, что это может работать со связанными серверами. См. Здесь: http://msdn.microsoft.com/en-us/library/ms190479.aspx – sofl
возможный дубликат [SQL Server Linked Server Example Query] (http://stackoverflow.com/questions/4091960/sql-server -link-server-example-query) и http://stackoverflow.com/questions/10402197/how-to-create-the-linked-server-for-sql-server-2008-where-we-have-the- база-F –