::存储过程之行列转换与全局临时表的问题::
在一存储过程中要用到行列转换:
declare @sql varchar(4000)
set @sql = 'select material '
select @sql=@sql+ ',sum(case months when ' ' '+months+ ' ' ' then qty end) [ '+months+ '] ' from (select distinct months from #temp) as a
select @sql=@sql+ ' from #temp group by material '
exec(@sql)
但转换的结果只在@sql定义的这个域内有效,所有要把结果放到一全局临时表里,以便在整个存储过程中都可用:
declare @sql varchar(4000)
set @sql = 'select material '
select @sql=@sql+ ',sum(case months when ' ' '+months+ ' ' ' then qty end) [ '+months+ '] ' from (select distinct months from #temp) as a
select @sql=@sql+ ' into ##temp1 ' --****************增加这一行
select @sql=@sql+ ' from #temp group by material '
exec(@sql)
select * from ##temp1 --***************##temp1无效
运行存储过程,报错提示##temp1无效
这是什么原因呢,有什么其他的方法吗,谢谢
------解决方案--------------------直接用#temp1 在外面就可以用.
------解决方案--------------------select ... from exec .....
google一下。