读书人

:存储过程之行列转换与全局临时表的有

发布时间: 2012-02-02 23:57:14 作者: rapoo

::存储过程之行列转换与全局临时表的问题::
在一存储过程中要用到行列转换:
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一下。

读书人网 >asp.net

热点推荐