sql里的循环怎么写(急)

hxbdzwy 2011-02-21 12:21:49
sql语句是这样的:insert into ac_role_menu(role_id ,menu_name,status) SELECT 1103,'a',1 FROM dual UNION SELECT 1103,'b',1 FROM dual UNION SELECT 1103,'c',1 FROM dual UNION SELECT 1103,'d',1 FROM dual 。现在想给所有的角色都默认插入menu,所以,就是要循环从user_role中取出role_id(1103就是其中一个role_id),然后批量插入。注意 我只要sql语句,不是储存过程,当然 都有最好!谢谢了!
...全文
297 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
wuyq11 2011-02-21
  • 打赏
  • 举报
回复
declare cur_dr2 cursor for select ID from #2
open cur_dr2
fetch next from cur_dr2 into @tmpid
while (@@fetch_status=0 )
begin
//insert
fetch next from cur_dr2 into @tmpid
END
close cur_dr2
deallocate cur_dr2
白云任去留 2011-02-21
  • 打赏
  • 举报
回复
2楼回答的差不多了
wangchangming 2011-02-21
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 mmm306306 的回复:]
while

或者游标
[/Quote]
+
hxbdzwy 2011-02-21
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 mmm306306 的回复:]
while

或者游标
[/Quote]
sql语句里面不能直接while吧  储存过程是可以。slq里面怎么写?
hxbdzwy 2011-02-21
  • 打赏
  • 举报
回复
一个角色有4个菜单 所以插入了4条记录 。现在是要给所有的角色 默认插入这4个菜单的权限,所以了。
hxbdzwy 2011-02-21
  • 打赏
  • 举报
回复
SELECT role_id from user_role
子夜__ 2011-02-21
  • 打赏
  • 举报
回复
你这个是ORACLE吧。。

你插入了4个一样的ID啊

所以直接就insert into 不就行啦?

在一个就是用游标


DEMO

SQL> DECLARE
2 v_id INT;
3 v_value VARCHAR(10);
4 -- 定义游标.
5 CURSOR c_test_main IS
6 SELECT id, value FROM test_main;
7 BEGIN
8 -- 打开游标.
9 OPEN c_test_main;
10 -- 填充数据.
11 FETCH c_test_main INTO v_id, v_value;
12 -- 假如检索到了数据,才处理.
13 WHILE c_test_main%FOUND LOOP
14 dbms_output.put_line(v_value);
15 -- 填充下一条数据.
16 FETCH c_test_main INTO v_id, v_value;
17 END LOOP;
18 -- 关闭游标
19 CLOSE c_test_main;
20 END;
21 /
TWO
THREE
ONE
马老虎 2011-02-21
  • 打赏
  • 举报
回复
while

或者游标
littlehand 2011-02-21
  • 打赏
  • 举报
回复
do while
冬天的糊涂神 2011-02-21
  • 打赏
  • 举报
回复
2楼 和 8楼 正解
chen_ya_ping 2011-02-21
  • 打赏
  • 举报
回复
sql 语句,我觉得怎么都比不上存储过程,为何楼主不用存储过程,而且我觉得存储过程可以很好的解决你目前的问题,你的sql语句很长,写在cs中,能看的的很清楚吗?
无爱大叔 2011-02-21
  • 打赏
  • 举报
回复
sql中好像不行

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧