declare @sql varchar(200)
drop table #tmp
create table #tmp(
id int
)
set @sql = 'insert into #tmp select 2'
exec (@sql)
--select 1 as aa
select *from (select * from #tmp union
select 1
) as aa
可能是因为您创建的临时表与查询的临时表的数据不在同一个会话中即没有在数据集端定义存储过程,导致数据无法共享;创建和查询的临时表已经在同一会话中,但是在调用前后没有加SET NOCOUNT ON和SET NOCOUNT OFF
SET NOCOUNT ON/*开始的*/
SET NOCOUNT OFF/*结束的也要加上*/
在最前面加上SET NOCOUNT ON 试试 。要不你就改成存储过程。好像SQL数据集不能用除select外的否则都不会返回数据集