SQL存储过程编写案例

Posted 小王子的博客

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 [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‘

  

  

以上是关于SQL存储过程编写案例的主要内容,如果未能解决你的问题,请参考以下文章

Sql语法高级应用之三:存储过程

SQL基础分页存储过程(案例一)

mysql存储过程编写-入门案例-遁地龙卷风

Java调用SQL Server的存储过程详解(转)

数据库怎么编写存储过程?

oracle pl/sql 分页