zoukankan      html  css  js  c++  java
  • 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  

      

      

  • 相关阅读:
    Nginx+uWsgi+Django+Python+MongoDB+mySQL服务器搭建
    MongoDB的副本集Replica Set
    Google论文之一Bigtable学习翻译
    python类的成员和装饰器
    nginx代码分析进程和模块初始化
    MongoDB的分片Sharding
    MongoDB的分片和副本集部署
    安装sql server 2008 r2
    Hello, World!
    vs2010仿Myeclipse open file 功能插件
  • 原文地址:https://www.cnblogs.com/xiaowangzi1987/p/6659741.html
Copyright © 2011-2022 走看看