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‘

  

  

时间: 2024-10-25 05:29:46

SQL存储过程编写案例的相关文章

SQL存储过程编写,包含临时表

create proc R_ProductUse_M(@id1 int,@id2 int,@id3 int) as begin ---临时表1 select a.id1,b.id2,c.id3 into #linshi_1 from table_a as a,table_b as b,table_c as c where a.id1=@id2---临时表2 select c.id3,sum(a.l2),month(b.l3),b.l1 into #linshi_2 from table_a as

你真的会玩SQL吗?玩爆你的数据报表之存储过程编写(下)

你真的会玩SQL吗?系列目录 你真的会玩SQL吗?之逻辑查询处理阶段 你真的会玩SQL吗?和平大使 内连接.外连接 你真的会玩SQL吗?三范式.数据完整性 你真的会玩SQL吗?查询指定节点及其所有父节点的方法 你真的会玩SQL吗?让人晕头转向的三值逻辑 你真的会玩SQL吗?EXISTS和IN之间的区别 你真的会玩SQL吗?无处不在的子查询 你真的会玩SQL吗?Case也疯狂 你真的会玩SQL吗?表表达式,排名函数 你真的会玩SQL吗?简单的 数据修改 你真的会玩SQL吗?你所不知道的 数据聚合

SQL Server中的CLR编程——用.NET为SQL Server编写存储过程和函数

原文:SQL Server中的CLR编程--用.NET为SQL Server编写存储过程和函数 很早就知道可以用.NET为SQL Server2005及以上版本编写存储过程.触发器和存储过程的,不过之前开发的系统要么因为历史原因用的是SQL2000要么根本用不着在SQL Server中启用CLR,所以一直没有尝试.最近因为项目的原因,在这方面做了一个调研,现在在这里分享一下心得. 首先要说明的是要在SQL Server中启用CLR必须是在SQL Server2005及以上版本,其次在默认情况下是

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

(-1)写在前面 这篇文章只是简要的叙述了mysql存储过程编写的基本概念. 我使用的mysql版本是5.7.9-log. 参照<<深入浅出MySQL>>. (0) delimiter // delimiter //中的//可以指定为别的符号,比如delimiter @@,改变语句的结束的标识. 因为在存储过程中用到了;,不改变默认语句结束.标识将会报错. 创建完存储过程后别忘了自己更改过默认结束标识哦! (1)存储过程的创建 在mysql命令行工具输入如下代码,当然你也可以在可视

Spark视频第5期:Spark SQL架构和案例深入实战

Spark SQL架构和案例深入实战 视频地址:http://pan.baidu.com/share/link?shareid=3629554384&uk=4013289088&fid=977951266414309 王家林老师(邮箱:[email protected] QQ: 1740415547) Spark亚太研究院院长和首席专家,中国目前唯一的移动互联网和云计算大数据集大成者. 在Spark.Hadoop.Android等方面有丰富的源码.实务和性能优化经验.彻底研究了Spark从

spark视频-Spark SQL架构和案例深入实战

Spark亚太研究院决胜大数据时代公益大讲坛第五期:Spark SQL架构和案例深入实战,视频地址:http://pan.baidu.com/share/link?shareid=3629554384&uk=4013289088&fid=977951266414309 王家林老师(邮箱:[email protected] QQ: 1740415547) Spark亚太研究院院长和首席专家,中国目前唯一的移动互联网和云计算大数据集大成者. 在Spark.Hadoop.Android等方面有丰

SQL存储过程实例详解

SQL存储过程实例详解 本文用3个题目,从建立数据库到创建存储过程,详细讲解数据库的功能. 题目1 学校图书馆借书信息管理系统建立三个表: 学生信息表:student 字段名称 数据类型 说明 stuID char(10) 学生编号,主键 stuName Varchar(10) 学生名称 major Varchar(50) 专业 图书表:book 字段名称 数据类型 说明 stuID char(10) 学生编号,主键 stuName Varchar(10) 学生名称 major Varchar(

SQL Delta实用案例介绍,很好的东西,帮了我不少忙

SQL Delta实用案例介绍 概述 本篇文章主要介绍SQL DELTA的简单使用.为了能够更加明了的说明其功能,本文将通过实际项目中的案例加以介绍. 主要容 ?   SQL DELTA 简介 ?   创建SQL DELTA项目 ?   使用SQLDELTA 进行数据库结构同步 ?   使用SQLDELTA进行数据库数据同步 ?   生成数据报表 ?   待续 SQLDELTA简介 SQLDELTA是一款便捷实用的数据库管理工具.使用它可以找到现在数据库项目与过去数据库的异同点.并可以使你的产品

《软件测试自动化之道》读书笔记 之 SQL 存储过程测试

<软件测试自动化之道>读书笔记 之 SQL 存储过程测试 2014-09-28 待测程序测试程序   创建测试用例以及测试结果存储  执行T-SQL脚本  使用BCP工具导入测试用例数据  创建T-SQL 测试套件  当待测存储过程返回行集的时候,如何判断测试结果是否通过  当待测存储过程返回out参数时,如何判断测试结果是否通过  当待测存储过程没有返回值时,如何判断测试结果是否通过 许多基于Windows的系统都使用了SQL Server作为后台组件.待测程序经常通过存储过程来访问数据库.