我正在使用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)
但我注意到该表不存在
如何从表中获取数据?
您在@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查询的临时表中选择所有内容。其次,我创建一个临时表(在这种情况下,其名称相同)来保存结果。现在,我可以将执行结果插入表中。瞧!数据在那里。