【问题标题】:T-Sql getting data from tempdb tableT-Sql 从 tempdb 表中获取数据
【发布时间】:2012-09-11 19:49:14
【问题描述】:

我正在使用 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

但我注意到该表不存在

如何从表格中获取数据?

【问题讨论】:

标签: sql tsql temp


【解决方案1】:

您在@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

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

【讨论】:

    【解决方案2】:

    临时表是在 Tempdb 上创建的,因此您也可以这样做:

    SET @Sql = 'SELECT 1 AS id, ''123'' AS value INTO ##tmp_prueba'
    
    EXECUTE ( @Sql )
    
    Select * from tempdb..##tmp_prueba
    

    【讨论】:

      猜你喜欢
      • 2017-05-18
      • 2018-05-16
      • 1970-01-01
      • 2010-10-11
      • 2011-01-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-22
      相关资源
      最近更新 更多