Я хочу иметь возможность выполнять удаленные запросы на основе результатов локального запроса.

Например:

DECLARE @REMOTESERVER VARCHAR(10)

Select TOP 1 @REMOTESERVER = RemoteServer from TABLE

- выполнить следующий запрос на удаленном сервере из значения, полученного мной выше

Select * from tblCustomers
sql
0
paul 10 Янв 2013 в 22:42
1
Какую СУБД вы используете?
 – 
sgeddes
10 Янв 2013 в 22:50

1 ответ

Лучший ответ

Какую СУБД вы используете? Некоторые не поддерживают чистый sql-способ сделать это. Другие, например SQL Server, могут поддерживать этот сценарий. Доступен ли удаленный сервер через связанный сервер, к которому вы можете получить доступ. Затем вы можете использовать динамический sql для создания своей строки sql. Что-то вроде этого должно работать в SQL Server:

SET @Sql = 'SELECT * FROM [' + @RemoteServer + '].dbname.schema.tblCustomers'
EXEC @Sql

Вот сообщение о связанных серверах: https://stackoverflow.com/a/4091984/1073631

1
Community 23 Май 2017 в 15:12
Да, это сработало, спасибо! Единственное, что мне пришлось сделать иначе, так это обернуть переменную exec как таковую: EXEC (@Sql) Спасибо!
 – 
paul
11 Янв 2013 в 19:08