我想在动态查询中创建一个临时表,然后使用它。它将从永久表创建:
create table t (a integer);
insert into t values (1);
临时表的创建是这样的:
declare @command varchar(max) = '
select *
into #t
from t
;
select * from #t;
';
execute (@command);
当@command 被执行时select from
,临时表就起作用了。
现在,如果我从临时表中选择,则会显示一条错误消息:
select * from #t;
Invalid object name '#t'
如果临时表是在动态查询之外创建的,它可以工作:
select top 0 *
into #t
from t
declare @command varchar(max) = '
insert into #t
select *
from t
';
execute (@command);
select * from #t;
是否可以持久化动态创建的临时表?