加入收藏 | 设为首页 | 会员中心 | 我要投稿 安卓应用网_ASP源码网 (https://www.1asp.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

Sql存储过程游标循环的用法及sql如何使用cursor写一个简单的循环

发布时间:2016-11-27 17:43:49 所属栏目:大数据 来源:网络整理
导读:用游标,和WHILE可以遍历您的查询中的每一条记录并将要求的字段传给变量进行相应的处理 ================== DECLARE @A1 VARCHAR(10),@A2 VARCHAR(10),@A3 INTDECLARE CURSOR YOUCURNAME FOR SELECT A1,A2,A3 FROM YOUTABLENAMEOPEN YOUCURNAMEfetch next

  表结构如下:

rights
  -------------------
  rightid int
  right varchar(20)
  
  ==========
  
  roles
  -------------------
  roleid int
  roletype int
  role varchar(20)
  rightid int

    在我的role表里有一个角色admin。admin拥有right表中的所有权限,但是有四个字段,要是用手写完我这个速度,加上这个数量我看也就算了。省了手上的力气就要费脑子。

  在查询分析器里写了半天,总算是吭哧出来了。

  首先使用truncate table把role原来的失败信息清掉,听说会比delete快一点,只不过数量少看不出明显效果。

  然后建立一个临时的用于填充的存储过程。

create procedure TempFill
  
  declare mycursor cursor for
  select rightid from rights--这两个是一句,定义游标,然后从rights中取一个rightid给游标
  
  open mycursor
  
  declare @rightid int--定义一个变量
  fetch mycursor into @rightid--把mycursor当前的值给@rightid
  
  while @@fetch_status=
  begin
  insert into rolestable (roletype,role,rightid)values(,'admin',@rightid)
  fetch mycursor into @rightid
  end
  
  close mycursor
  deallocate mycursor

  这样就写完了。

  execute TempFill 再执行他一下。

(编辑:安卓应用网_ASP源码网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

推荐文章
    热点阅读