TSQL Openquery 不创建临时 table
TSQL Openquery not creating temp table
我有以下代码:
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) 时;临时 table 尚未创建。
当我运行注释掉的行:
SELECT *
INTO #tempInv
FROM OPENQUERY(RBDAX1, 'SELECT iln.product_nbr FROM axs.pub.ivc_line iln');
临时 table 创建得很好。
我在这里错过了什么?
您不能以这种方式创建临时文件 table。临时 table 已创建,但随后 'goes away' 查询结束。您可以创建 table 并执行 insert/select.
我有以下代码:
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) 时;临时 table 尚未创建。
当我运行注释掉的行:
SELECT *
INTO #tempInv
FROM OPENQUERY(RBDAX1, 'SELECT iln.product_nbr FROM axs.pub.ivc_line iln');
临时 table 创建得很好。
我在这里错过了什么?
您不能以这种方式创建临时文件 table。临时 table 已创建,但随后 'goes away' 查询结束。您可以创建 table 并执行 insert/select.