数据库的存储过程
定义:存储过程是一组为了完成特定过程的SQL的语句集。类似函数这样子的。
分类:系统存储过程、用户存储过程、扩展存储过程。
、、、系统存储过程主要用来从系统中获取信息,完成数据库服务器的管理工作,通常以sp_开头。常用的如下:
(1)sp_helpbd:用于查看数据库的名称及大小。
(2)sp_helptext:用于显示规则、默认值、未加密的存储过程、用户定义函数、触发器或视图的文本。
(3)sp_renamedb:用于重命名数据库。
(4)sp_rename:用于更改当前数据库中用户创建的对象(表、列、用户定义的数据类型)名称。
(5)sp_helplogins:查看所有数据库用户登录信息。
(6)sp_helpsrvrolemember:查看所有数据库用户所属的角色信息。
、、、用户存储过程即是用户使用T-SQL语句编写的、为了实现某一特定业务需求,在用户数据库中编写的T-SQL语句集合。用户存储过程可以接收输入参数、向客户端返回结果和信息、返回输出参数等。
、、、扩展存储过程为扩展SQL SEVER的功能提供了一种方法,可以动态地加载和执行动态链接库中的函数。扩展过程以xp_开头。涉及扩展存储过程操作饭店的系统存储过程的有sp_addextendedproc、sp_dropextendedproc、sp_helpextendedproc。
(1)创建简单存储过程,查询笔记本电脑的商品销售情况
--创建
USE 销售管理数据库
GO
CREATE PROCEDURE PROC_1
AS
SELECT 商品表.商品编号 ,商品名称,销售日期,销售数量
FROM 商品表,销售表
WHERE 商品表.商品编号 =销售表.商品编号 AND 商品名称='笔记本'
GO
--执行
EXEC PROC_1
2、创建带输入参数的存储过程
--创建
USE 销售管理数据库
GO
CREATE PROCEDURE PROC_2
@SPM VARCHAR(20)
AS
SELECT 商品表.商品编号 ,商品名称,销售日期,销售数量
FROM 商品表,销售表
WHERE 商品表.商品编号 =销售表.商品编号 AND 商品名称=@SPM
GO
--执行
EXEC PROC_2 '笔记本'
3、创建查询指定商品的销售情况。如果执行位带参数,默认查询笔记本的销售情况,带参数以参数为准。
--创建
USE 销售管理数据库
GO
CREATE PROCEDURE PROC_3
@SPM VARCHAR(20)='笔记本'
AS
SELECT 商品表.商品编号 ,商品名称,销售日期,销售数量
FROM 商品表,销售表
WHERE 商品表.商品编号 =销售表.商品编号 AND 商品名称=@SPM
GO
--执行
EXEC PROC_3 --'无参数时'
EXEC PROC_3 --'指定参数时'
4、带输出参数的存储过程