存储过程简称过程,是为了完成某种功能而编写的程序段,相当于C语言中的函数或java中的方法

存储过程存放在数据库的“可编程性”组件中,属于数据库,和表、视图级别相同。存储过程允许用户声明变量,可以调用系统函数,经过编译后存储在数据库服务器中。存储过程可以接收输入参数,也可以将运行结果带出过程,还可以嵌套调用。

存储过程有以下4个功能:

1.减少网络流量

存储过程直接在服务器端运行,减少了与客户机的交互

2.增强了代码的重用性和共享性

3.加快系统运行速度

4.使用灵活

存储过程分类

1.系统存储过程。系统存储过程均以sp_开头

2.自定义存储过程

3.扩展存储过程

建立存储过程的命令格式

create procedure 存储过程名

[with encryption]

[@参数名 类型[= 默认值][output][,..n]]

as sql 语句

建立无参数存储过程

create procedure p1_all

as

begin

select *

from bookinfo

where publish='清华大学出版社'

执行后,可以在ssms管理器中找到这个存储过程

sql-存储过程

调用存储过程的时候,只需要在查询窗口输入存储过程名即可

sql-存储过程

如果存储过程不是处理的第一条语句,那么必须采用以下的格式:

execute 存储过程名[参数值]

例如调用p1_all的命令是

execute pa_all

其中execute可以简写为exec

建立有参数存储过程

参数包括形参和实参,定义参数时,需要明确规定是输入参数还是输出参数,参数后面加output就是输出参数,没加就是输入参数。

例:创建存储过程p3_writer,显示bookinfo中指定作者编写的全部图书

这里指定作者是一个形参,具体指需要在调用这个存储过程时输入。形参的类型还有长度必须与作者这个字段的类型和长度保持一致。假设参数名为editor。

create proc p3_writer
@editor varchar(8)
as
begin
	select *
	from BookInfo
	where [email protected]
end

查询

exec p3_writer '胡伏湘'

查询结果如下

sql-存储过程

 

相关文章: