存储过程循环table中的数据

来源:互联网 发布:苹果相册加密软件 编辑:程序博客网 时间:2024/06/05 19:40

create procedure Proc_SelBranchName     ----创建存储过程

As
 create table #bumenlingshi(   ----创建临时表
  bumenvalue varchar(100),     ----部门
  lanmuvalue varchar(100)       ----栏目
 )
 
 declare cur_id cursor for  select id from dbo.reneinfo order by branch,cotegroup --定义游标[cur_id]指为dbo.reneinfo 表的id

 open cur_id                                         --打开游标  
 declare @branch varchar(50)              ---定义变量部门
 declare @groupName varchar(50)       ---定义变量栏目
 declare @index int                              ----循环索引
 declare @result int                              ----table总行数
 declare @i int                                      ----循环变量
 declare @duibi varchar(50)
 select @result=count(*) from reneinfo  ---获得总行数
 set @i=1                                          ----初始化循环变量


while(@i<=@result)                        ----执行循环
 begin


  fetch NEXT from cur_id into @index   ----将游标中的值赋给变量@index


  set select @branch= branch from reneinfo where id=@index  -----id=游标中的值相当于每次循环都拿到不同的id
 set select @groupName=cotegroup from reneinfo where branch=@branch and id=@index group by cotegroup   

         
      insert into #bumenlingshi values(@bumenstr,@lanmustr)    ------将查出来的字段添加到临时表中

   
      set @i=@i+1     ----循环索引加1


    end
 close cur_id  --关闭游标  
 DEALLOCATE cur_id --删除游标  
 select * from #bumenlingshi     ---查询临时表中的数据
 

exec Proc_SelBranchName   ---调用存储过程

 

 

原创粉丝点击