TSQL Openquery не создает временную таблицу - PullRequest
0 голосов
/ 26 июня 2018

У меня есть следующий код:

declare @cQuery      varchar(2000);
declare @cTSQL       varchar(2000);
declare @cLinkServer varchar(20);
declare @cTable      varchar(20);

set @cQuery = 'SELECT iln.product_nbr FROM axs.pub.ivc_line iln';
set @cLinkServer = 'RBDAX1';
set @cTable = '#tempInv';

if OBJECT_ID('tempdb..#tempInv') is not null
    drop table #tempInv

--SELECT * INTO #tempInv FROM OPENQUERY(RBDAX1,'SELECT iln.product_nbr FROM axs.pub.ivc_line iln');

set @cTSQL = 
    'SELECT * '
    + ' INTO #tempInv '
    + ' FROM OPENQUERY(RBDAX1,''SELECT iln.product_nbr FROM axs.pub.ivc_line iln'')'
    ;

exec ( @cTSQL );

Когда я вызываю exec (@cTSQL); временная таблица не была создана.

Когда я запускаю закомментированную строку:

SELECT * 
INTO #tempInv 
FROM OPENQUERY(RBDAX1, 'SELECT iln.product_nbr FROM axs.pub.ivc_line iln');

временная таблица создана просто отлично.

Что мне здесь не хватает?

1 Ответ

0 голосов
/ 26 июня 2018

Вы не можете создать временную таблицу таким образом. Временная таблица создается, но затем «уходит» в ту минуту, когда запрос заканчивается. Вы можете создать таблицу и сделать вставку / выбор.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...