读书人

为什么这个存储过程在执行时老出错?该

发布时间: 2012-01-23 21:57:28 作者: rapoo

为什么这个存储过程在执行时老出错?
begin
begin transaction
select @i=count(*) from sp_chargetype where dept_num= '5201 '
set @a=1
declare @sql nvarchar(4000)
set @sql= 'CREATE TABLE #temp3 (corp_name nvarchar(50) null '
while @i> 0
begin
set @sql =@sql+ ',fee '+rtrim(@a)+ ' decimal(13,2) null,sumfee '+rtrim(@a)+ ' decimal(13,2) null '
set @a=@a+1
set @i=@i-1
end
set @sql=@sql+ ') '
exec(@sql)
insert into #temp3 (corp_name)
select max(corp_name) from #temp1 group by corp_name
commit

end

[解决办法]
--try


begin
begin transaction
select @i=count(*) from sp_chargetype where dept_num= '5201 '
set @a=1
declare @sql nvarchar(4000)
set @sql= 'CREATE TABLE #temp3 (corp_name nvarchar(50) null '
while @i> 0
begin
set @sql =@sql+ ',fee '+rtrim(@a)+ ' decimal(13,2) null,sumfee '+rtrim(@a)+ ' decimal(13,2) null '
set @a=@a+1
set @i=@i-1
end

set @sql=@sql+ ') '

set @sql = @sql + ' go '

set @sql = @sql + '
insert into #temp3 (corp_name)
select max(corp_name) from #temp1 group by corp_name '

exec(@sql)

commit

end

读书人网 >SQL Server

热点推荐