SQL---存储过程---存储过程编写案例

存储过程的创建和调用演示

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 Sno=@Sno and Cno=@Cno
     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 Sname=@Sname_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 Sno=@Sno_IN and Cno=@Cno_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 int output
  )
  as
  begin
      select @Grade_OUT=Grade from SC where Sno='0900' and Cno='2'
  end

  Declare @Grade_Result int --声明一个变量来存储输出参数输出的值
  exec PROC_With_Out_Param @Grade_OUT=@Grade_Result output
  print @Grade_Result
--写控制逻辑
  if @Grade_Result>=90
    print 'a'
  elseif (@Grade_Result<90 and @Grade_Result>85)
    print '2'
  else
    print '22'

7.使用一个值来保存执行后的状态

create procedure PROC_With_Status_Value
   (
       @Sno_IN char(5)
   )
   as 
   begin 
       select * from SC where Sno=@Sno_IN
   end
--使用记录状态的执行
   declare @status int 
   exec @status=PROC_With_Status_Value @Sno_IN='00'
   print @status

   if(@status=0)
     print '1'
   else
     print '0'

8.输入输出参数的存储过程

create procedure PROC_With_In_And_Out_Param
    (
        @Sno_IN char(5),
        @Grade_Out int output
    )

    as 
    begin
        select @Grade_Out=Grade from SC where Sno=@Sno_IN 
    end
--执行存储过程
    declare @Grade_Result int 
    exec PROC_With_In_And_Out_Param @Sno_IN='0900',@Grade_Out=@Grade_Reault output
    print @Grade_Result  

  

  

转载于:https://www.cnblogs.com/xiaowangzi1987/p/6659741.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值