Обновлено для новой информации.
Ответ - нет, если вы пытаетесь это сделать.Если вы уже знаете структуру, сначала создайте временную таблицу.Возможно, вам придется изменить настройки RPC и DTC, чтобы звонок работал.
CREATE TABLE #temp
(<Table definition for your results>)
DECLARE @var VARCHAR(100)= 'your command'
INSERT INTO #temp EXEC (@var) AT TRANSACCOUNT
SELECT * FROM #temp
Если структура вам неизвестна, вы можете использовать OPENROWSET или OPENQUERY для генерации таблицы на лету.
Openquery:
SELECT *
INTO #temp FROM
OPENQUERY(targetServer, 'your command')
Openrowset:
SELECT * INTO
#temp
FROM
OPENROWSET(
'SQLNCLI',
'Server=targetServer;Trusted_Connection=yes;',
'your command'
)
SELECT * FROM #temp
Для OPENQUERY и OPENROWSET требуются строковые литералы, поэтому, если вам нужно динамически установить базовую команду, вам также необходимо создать вызов OPENROWSET.Контекст вызова также изменит контекст любой временной таблицы, так что вы можете использовать временную постоянную таблицу для хранения ваших результатов, например:
DECLARE @var VARCHAR(100)= 'your command'
DECLARE @command VARCHAR(MAX)
SELECT @command = CONCAT(
'SELECT * INTO temporaryTable
FROM
OPENROWSET(
''SQLNCLI'',
''Server=targetServer;Trusted_Connection=yes;'',
''', @var,'''
)')
EXEC (@command)
SELECT * FROM temporaryTable