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