有无参数之存储过程

Posted knight-zhou

tags:

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

一、 创建带参数的存储过程
创建带参数的存储过程首先要在存储过程中声明该参数,每个存储过程参数都必须用唯一的名称进行定义。与T-SQL变量相同,参数名必须以@为前缀,并且遵从标识符规则。当用户不提供该参数的值时可以使用一个默认值来代替。

1.不带默认值的参数

 创建一个参数不带默认值的存储过程,在调用该存储过程时,必须对存储过程中的所有参数进行赋值,如果有一个参数没有赋值,则无法调用该存储过程。例如:

[sql]

use db_student

--创建存储过程

create procedure proc_group

@课程类别 varchar(20), --定义参数

@学分 int

as

select * from course

where 课程类别=@课程类别 and 学分>@学分

执行不带参数的存储过程就是:

[sql]

use db_student

exec proc_group ‘歌曲‘,8

如果不按顺序赋值可以写成:

[sql]

use db_student

exec proc_group @学分=8,@课程类别=‘篮球课’

2.带默认值的参数

在SQL中我们可以对字段进行默认值的约束,在存储过程中也可以建立使用默认值的参数。只要在参数的定义之后加上等号,并在等号后面写出默认值即可。

[sql]

--创建存储过程

use db_student

create procedure proc_group

@课程类别 varchar(20)=‘体育课‘,

@学分 int=6

as

select * from course where 课程类别=@课程类别 and 学分>@学分

执行参数带默认值的存储过程

[sql]

use db_student

exec proc_group @学分=8

3.带返回参数的存储过程

创建存储过程时,可以用output参数来创建一个带返回值的存储过程,例如:

[sql]

@a int output

如果创建带返回参数的存储过程proc_group,那么SQL语句如下:

[sql]

--创建带返回值的存储过程

create procedure proc_group

@课程类别 carchar(20),

@平均学分 int output --设置带返回值的参数

as

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

Oracle之存储过程

函数(定义,有无返回值,参数以及传参问题)

mybatis 存储过程

JDBC之存储过程

PostgreSQL Oracle 兼容性之存储过程

数据库系统原理之数据库编程