Попробуйте OPENROWSET - с аутентификацией Windows
DECLARE @server VARCHAR(255);
SET @server='your_sql_server_name';
DECLARE @remotequery VARCHAR(MAX);
SET @remotequery='
SELECT *
FROM
OPENROWSET(''SQLOLEDB'',
''Server='+@server+';Trusted_Connection=yes;'',
''SELECT dbid , name FROM master.dbo.sysdatabases
WHERE name NOT IN ( ''''master'''', ''''tempdb'''',''''model'''', ''''msdb'''')'')';
EXEC(@remotequery);
OPENROWSET с пользователем и паролем
DECLARE @server VARCHAR(MAX);
DECLARE @user VARCHAR(255)
DECLARE @password VARCHAR(255)
SET @server='your_sql_server_name';
SET @user = 'your_user';
SET @password = 'your_password'
DECLARE @remotequery VARCHAR(MAX);
SET @remotequery='
SELECT *
FROM
OPENROWSET(''SQLOLEDB'',
''Server='+@server+';UID='+@user+';PWD=' + @password + ';'',
''SELECT dbid , name FROM master.dbo.sysdatabases
WHERE name NOT IN ( ''''master'''', ''''tempdb'''',''''model'''', ''''msdb'''')'')';
EXEC(@remotequery);
По умолчанию SQL Server не разрешает распределенные запросы ad hoc с использованием OPENROWSET и OPENDATASOURCE.
Чтобы включить специальные распределенные запросы:
sp_configure 'show advanced options', 1;
RECONFIGURE;
GO
sp_configure 'Ad Hoc Distributed Queries', 1;
RECONFIGURE;
GO