T-Sql从tempdb表中获取数据

Ser*_*res 2 sql t-sql temp

我正在使用Microsoft SQL Server 2008 R2(RTM)-10.50.1600.1(X64),并且正在尝试对已创建的表进行SELECT语句,如下所示:

DECLARE @Sql AS VARCHAR(1500)

SET @Sql = 'SELECT 1 AS id, ''123'' AS value INTO #tmp_prueba'

EXECUTE ( @Sql )

SELECT * FROM #tmp_prueba
Run Code Online (Sandbox Code Playgroud)

但我注意到该表不存在

如何从表中获取数据?

Gor*_*off 5

您在@sql中创建的临时表不在外部查询的范围内。

这是您想要做的一种方法:

DECLARE @Sql AS VARCHAR(1500);

SET @Sql = 'SELECT 1 AS id, ''123'' AS value INTO #tmp_prueba;
            select * from #tmp_prueba'

create table #tmp_prueba (id int, value varchar(255));

insert into #tmp_prueba
    EXECUTE( @Sql );

SELECT * FROM #tmp_prueba
Run Code Online (Sandbox Code Playgroud)

这是更改。首先,我从@sql查询的临时表中选择所有内容。其次,我创建一个临时表(在这种情况下,其名称相同)来保存结果。现在,我可以将执行结果插入表中。瞧!数据在那里。