sqlserver2005 存储过程不能返回 table吗?

这是存储过程中的一段sql

select * into #TB_JFFPTB1
from
(
select TB_JingFei.JF_MC,TB_JingFeiFenPei.JFFP_ID,TB_JingFeiFenPei.JF_KYYE,
TB_ZiYuanLeiBie.ZYLB_MC,TB_JingFeiQueRen.JFQR_ID,TB_JingFeiQueRen.GMSQ_ID,TB_JingFeiQueRen.JFQR_JE
from TB_JingFei
inner join TB_JingFeiFenPei
on TB_JingFei.JF_ID=TB_JingFeiFenPei.JF_ID and TB_JingFeiFenPei.JF_LB=1
left join TB_ZiYuanLeiBie
on TB_JingFeiFenPei.ZYLB_ID=TB_ZiYuanLeiBie.ZYLB_ID
left join TB_JingFeiQueRen
on TB_JingFeiFenPei.JFFP_ID=TB_JingFeiQueRen.JFFP_ID and TB_JingFeiQueRen.JFQR_JFLB=1
and TB_JingFeiQueRen.GMSQ_ID=8

where TB_JingFei.JF_NF='2013'
) Temp
declare @sql1 varchar(8000)
set @sql1 = 'select JF_MC as 经费名称'
select @sql1 = @sql1 + ' , max(case ZYLB_MC when ''' + ZYLB_MC + ''' then isnull(JF_KYYE,0) else 0 end) [' + ZYLB_MC + '] ,
max(case ZYLB_MC when ''' + ZYLB_MC + ''' then isnull(JFQR_JE,0) else 0 end) [确认' + ZYLB_MC + '],
max(case ZYLB_MC when ''' + ZYLB_MC + ''' then JFFP_ID else 0 end) [' + ZYLB_MC + 'ID],
max(case ZYLB_MC when ''' + ZYLB_MC + ''' then JFQR_ID else 0 end) [' + ZYLB_MC + 'QRID]'
from (select distinct ZYLB_MC from #TB_JFFPTB1) as a
set @sql1 = @sql1 + ' from #TB_JFFPTB1 group by JF_MC'
exec(@sql1)

出现的问题是,在sql2008中,会输出一张表,在sql2005中却没有输出结果,不明白为什么

该回答引用ChatGPT

看起来是因为 SQL Server 2005 和 SQL Server 2008 的兼容性问题导致的。请尝试在 SQL Server 2005 中执行以下操作:

  • 先删除所有已存在的 #TB_JFFPTB1 临时表

  • 确保 #TB_JFFPTB1 临时表中的数据可以正确插入。

  • 确保以下结构是否存在: TB_JingFei、TB_JingFeiFenPei、TB_ZiYuanLeiBie、TB_JingFeiQueRen

在 SQL Server 2005 中测试以下语句的输出:

select * into #TB_JFFPTB1
from
(
select TB_JingFei.JF_MC,TB_JingFeiFenPei.JFFP_ID,TB_JingFeiFenPei.JF_KYYE,
TB_ZiYuanLeiBie.ZYLB_MC,TB_JingFeiQueRen.JFQR_ID,TB_JingFeiQueRen.GMSQ_ID,TB_JingFeiQueRen.JFQR_JE
from TB_JingFei
inner join TB_JingFeiFenPei
on TB_JingFei.JF_ID=TB_JingFeiFenPei.JF_ID and TB_JingFeiFenPei.JF_LB=1
left join TB_ZiYuanLeiBie
on TB_JingFeiFenPei.ZYLB_ID=TB_ZiYuanLeiBie.ZYLB_ID
left join TB_JingFeiQueRen
on TB_JingFeiFenPei.JFFP_ID=TB_JingFeiQueRen.JFFP_ID and TB_JingFeiQueRen.JFQR_JFLB=1
and TB_JingFeiQueRen.GMSQ_ID=8

where TB_JingFei.JF_NF='2013'
) Temp

如果以上步骤中的任何一步出现了问题,请解决它。