--存储过程的创建和调用演示 ------------------------------------------------------------------------------------------------- --1.不带参数的存储过程的创建
create procedure PRO_With_No_Param as Begin --begin可省略 select * from sc end --end可省略 --调用 exec PRO_With_No_Param
--2.带参数的存储过程的创建
create procedure PRO_With_Param ( @Sno char(5), @Cno char(1) ) as Begin select * from SC where [email protected] and [email protected] end --调用 exec PRO_With_Param ]09002‘,‘2‘
--3.带一个参数的多表联合查询
create procedure PRO_Query_Double_Table ( @Sname_IN char(6) ) as begin select Sname,Ssex,Sage,Cno,Grade from STU,SCTU where STU.Sno=SCTU.sno and [email protected]_IN --调用 exec PRO_Query_Double_Table ‘222‘
--4.创建一个插入表的存储过程
create procedure PRO_Insert ( @Sno_IN char(5), @Cno_IN char(5), @Grade_IN int ) as begin insert into SC (Sno,Cno,Grage) values (@Sno_IN,@Cno_IN,@Grade_IN) end --调用 exec PRO_Insert ‘0900‘,‘2‘,2
--5.默认参数的存储过程
create procedure PROC_With_Default_Param ( @Sno_IN char(5)=‘0900‘, @Cno_IN char(1)=‘2‘ ) as begin select * from SC where SC where [email protected]_IN and [email protected]_IN end --调用:这种存储过程有三种方式进行调用1.全部使用默认值,2.部分使用默认值。3.全部使用输入值 exec PROC_With_Default_Param exec PROC_With_Default_Param ‘09‘ exec PROC_With_Default_Param ‘09‘,‘1‘
--6.使用带输出参数的存储过程
create procedure PROC_With_Out_Param ( @Grade_OUT intoutput ) as begin select @Grade_OUT=Grade from SC where Sno=‘0900‘ and Cno=‘2‘ end Declare @Grade_Result int --声明一个变量来存储输出参数输出的值 exec PROC_With_Out_Param @[email protected]_Result output print @Grade_Result --写控制逻辑 if @Grade_Result>=90 print ‘a‘ elseif (@Grade_Result<90 and @Grade_Result>85) print ‘2‘ else print ‘22‘ select * from SC
--7.使用一个值来保存执行后的状态
create procedure PROC_With_Status_Value ( @Sno_IN char(5) ) as begin select * from SC where [email protected]_IN end --使用记录状态的执行 declare @status int exec @status=PROC_With_Status_Value @Sno_IN=‘00‘ print @status if(@status=0) print ‘1‘ else print ‘0‘
时间: 2024-10-25 05:29:46