创建存储过程

Posted xulinjun

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了创建存储过程相关的知识,希望对你有一定的参考价值。

一、定义存储过程的语法

语法:

CREATE PROC[EDURE] 存储过程名

  @参数1 数据类型 = 默认值 OUTPUT,

  ......

  @参数n 数据类型 = 默认值 OUTPUT

AS

  SQL语句

GO

 

存储过程的参数:

  • 和C#语言的方法一样,参数可选
  • 参数分为输入参数、输出参数
  • 输入参数允许有默认值

 

二、自定义存储过程实例

1、需求

在StudentManageDB数据库里有如下三张表,分别是学生表,成绩表,班级表:

技术图片

 

 现在有一个需求:查询考试成绩,显示学号、姓名、班级、总成绩、并按成绩的总分高低排序。

可以使用存储过程来解决:

 

2、新建存储过程

use StudentManageDB
go
if exists(select * from sysobjects where name = usp_ScoreQuery)
drop procedure usp_usp_ScoreQuery
go
create procedure usp_ScoreQuery
as
    --查询考试成绩
    select Students.StudentId,StudentName,ClassName,ScoreSum=(CSharp + SQLServerDB) from Students
    inner join StudentClass on StudentClass.ClassId=Students.ClassId
    inner join ScoreList on Students.StudentId=ScoreList.StudentId
    order by ScoreSum desc
go

 

执行完毕,就可以在如下菜单中看到新建的存储过程了:

技术图片

 

3、调用存储过程

exec usp_ScoreQuery

效果如下:

 

 技术图片

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

java 登录过程 - android片段,异步任务登录,Asp.net控制器,存储库

Sublime Text自定制代码片段(Code Snippets)

重定向时如何在 Safari 中保留 uri 片段?

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

无法从存储过程显示文本到 textview - Android SQL Server

oracle创建存储过程时,提示错误是:错误(5,18): PL/SQL: ORA-00947: 没有足够的值?代码如下: