Без подробностей трудно привести прямые примеры, но вот основная идея:
Во-первых, вне хранимой процедуры, хост-сервер (сервер, на котором будет храниться хранимая процедура) должензнать о втором сервере, включая (возможно) информацию для входа.
На вашем главном сервере запустите хранимую процедуру sp_addlinkedserver.Это нужно сделать только один раз:
exec sp_addlinkedserver @server=’(your second server)‘;
Если , вам необходимо предоставить информацию для входа на этот второй сервер (например, процесс не может войти в систему с теми же учетными данными, что ииспользуются в исходном соединении с базой данных), сделайте это с хранимой процедурой sp_addlinkedsrvlogin:
exec sp_addlinkedsrvlogin @rmtsrvname=’(your second server)‘,@useself=false, @rmtuser=’yourusername‘, @rmtpassword=’yourpassword‘;
Затем в своей хранимой процедуре вы можете указать таблицы на втором сервере:
SELECT table1.*
FROM table1
INNER JOIN [secondserver].[database].[schema].[table] AS table2 ON
table1.joinfield = table2.joinfield