我想在动态查询中创建一个临时表,然后再使用它。它将从永久表中创建:
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;
是否可以持久保存动态创建的临时表?
答案 0 :(得分:2)
答案 1 :(得分:1)
您还可以创建全局临时表。例如,## MyTemp。 但是,所有SQL Server连接都可以看到全局临时表。