?
Sqlserver2005创建存储过程--循环插入数据
---首先判断是否存在同名存储过程,如果有则删除--- if Exists(select name from sysobjects where name='pro_add'and type='P') drop proc pro_add go ---创建存储过程,本例为带参类型 create? procedure pro_add(@pvol_dh int,@pfile_id int,@pcounter,@pmax) as
---declare关键字 定义变量,用@标示变量(局部变量),可以一次定义多个变量,每个变量用逗号隔开 declare @counter numeric(10),@vol_dh? numeric(10),@file_id numeric(10)
---开始 begin
---变量赋值语句 set关键字 ?set @counter=@pcounter ?set @vol_dh=@pvol_dh ?set @file_id=@pfile_id
---循环语句,循环体中使用begin-end 标示循环体 while @counter<@pmax begin ?insert into vol(vol_id,vol_dh,title) ?values(@counter,@vol_dh,'存储过程创建文')
---每循环一次变量值增1 ?set @counter=@counter+1 ?set @vol_dh=@vol_dh+1 ?set @file_id=@file_id+1 ?end ---结束 ?end
--调用存储过程 exec pro_add 1,1,10
--查看调用结果 select? * from vol
--查看表结构 sp_help vol
?
oracle10g PL/SQL语句
oracle版存储过程说明:
---定义存储过程,PL/SQL中修改已经存在的procedure,不能使用modify进行修改,通过replace关键字进行替换
create or replace procedure pro_add ( ? v_pcounter in number? ,v_pvolid in number? ,v_pvoldh in number? ,v_pmax in number? ) as
---定义变量,PL/SQL中每个语句以分号结束,一行可以写多个语句 v_counter number; v_volid number; v_voldh number;
---开始 begin
---变量赋值操作? := v_counter:=v_pcounter; v_volid:=v_pvolid; v_voldh:=v_pvoldh;
---循环语句 while v_counter< v_pmax
---循环体 Loop ?? insert into vol(vol_id,vol_qzh,vol_ajh) ?? values ?? (v_volid ??,'A01' ??,v_voldh ??,v_counter ?? );
?? v_counter:=v_counter+1; ?? v_volid:=v_volid+1; ?? v_voldh:=v_voldh+1; end loop;
---提交事务 commit; end pro_add;
----调用----- exec? pro_add1,10
----查看表结构 desc vol
(编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|