Как выбрать из связанной временной таблицы локальную временную таблицу? - PullRequest
0 голосов
/ 02 июля 2019

В настоящее время я вызываю хранимую процедуру на связанном сервере.Эта хранимая процедура выбирает данные во временную таблицу на этом связанном сервере.Затем я пытаюсь выделить эти данные во временную таблицу на локальном сервере, чтобы я мог манипулировать данными и перетаскивать их в различные таблицы.

Если я вручную запускаю хранимую процедуру на сервере, яЯ могу выполнить вторую часть запроса (- ВЫБРАТЬ ДАННЫЕ ИЗ TEMP TABLE).Однако, хотя я могу успешно вызывать хранимую процедуру через первую часть моего запроса, когда она попадает во вторую часть, я получаю следующие ошибки:

Msg 8180, Level 16, State 1, Line 66
Statement(s) could not be prepared.
Msg 208, Level 16, State 1, Line 66
Invalid object name '##Sales'.

Есть ли другой способ, который я мог бы использовать здесь?В настоящее время службы SSIS недоступны, необходимо кодировать их с помощью T-SQL.

--CALL STORED PROC FOR SALES DATA
DECLARE @RunSalesStoredProcSQL VARCHAR(1000);
SET @RunSalesStoredProcSQL = 'EXEC [SERVER\INSTANCE].[DATABASE].[dbo].[Extract_Sales_Data]';
        EXEC (RunSalesStoredProcSQL) AT [SERVER\INSTANCE];
        Print ‘Sales Procedure Executed';


--SELECT DATA FROM TEMP TABLE
SELECT * 
    INTO ##TempTable
        FROM OPENQUERY([SERVER\INSTANCE], 'SELECT * FROM dbo.##Sales');
        Print 'Data Selected';

1 Ответ

0 голосов
/ 02 июля 2019

Вы можете вернуть данные из связанной серверной процедуры простым выбором, не выбирая их во временной таблице, и затем вы можете сделать следующее на локальном сервере:

INSERT INTO ##TempTable(ColNames)
EXECUTE [SERVER\INSTANCE].[DATABASE].[dbo].[Extract_Sales_Data]

--select data
SELECT * FROM ##TempTable
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...