首页 > 代码库 > SQL存储过程编写案例

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 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 @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‘
 select * from SC
--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‘

  

  

SQL存储过程编写案例