实验十四 存储过程与函数
【实验目的与要求】
1. 熟练掌握存储过程的编写。 2. 熟练掌握函数的编写与使用。
【实验内容与步骤】 14.1. 基础知识
存储过程(Stored Procedure)和函数是一组编译好存储在服务器上的完成特定功能T-SQL代码,是某数据库的对象。客户端应用程序可以通过指定存储过程或函数的名字并给出参数(如果该存储过程带有参数)来执行存储过程。
14.2. 创建用户存储过程
1. 使用存储过程模板创建存储过程
在【对象资源管理器】窗口中,展开“数据库”节点,再展开所选择的具体数据库节点,再展开选择“可编程性”节点,右击“存储过程”,选择“新建存储过程”命令,如图所示:
在右侧查询编辑器中出现存储过程的模板,可以在此基础上编辑存储过程,单击“执行”按钮,即可创建该存储过程。
第 1 页 共 17 页
实验14-1:创建一个简单的存储过程,实现从CP表中读取Mp3产品相关信息
USE CPXS GO
CREATE PROCEDURE get_mp3 --此为无参存储过程
AS
SELECT 产品编号,产品名称,价格,库存量 FROM CP
WHERE产品名称='mp3'
实验14-2:执行存储过程
执行存储过程可用下列方法之一:
(1)使用存储过程名字如:get_mp3 (2) 使用Exec命令:如:EXEC get_mp3 执行上面创建的存储过程,并给出执行结果:
第 2 页 共 17 页
2. 使用T-SQL语句创建存储过程
在查询分析器里使用T-SQL可直接创建存储过程
格式:
CREATE PROC 过程名
@形参名 类型
@变参名 类型 OUTPUT
AS
SQL语句
实验14-3:创建一个多表查询的存储过程。
问题:查询在2009年9月18日有销售的产品名称 (1)请给出相应的代码
create proc get_cp as
select 产品名称 from cp,cpxsb
where 销售日期='2009-9-18'
(2)执行存储过程,并给出执行结果:
第 3 页 共 17 页
(cpxsb中无销售日期为20090918的数据)
14.3. 存储过程的参数
1. 输入参数(值参)
实验14-4:输入参数为某产品的名字。
USE CPXS GO
CREATE PROCEDURE P_CPXS2
@Product_name char(30) --形式参数
As
SELECT 产品编号,产品名称,价格,库存量 FROM CP
WHERE 产品名称= @ Product_name GO
执行存储过程:
(1)直接传值:
EXEC P_CPXS2 '冰箱' --实参表 请给出执行结果:
第 4 页 共 17 页
(2)变量传值:
DECLARE @temp char(30)
SET @temp='洗衣机' EXEC P_CPXS2 @temp --实参表
请给出执行结果:
实验14-5:使用默认参数
阅读以下程序段,理解参数传递过程 USE CPXS GO
CREATE PROCEDURE P_CPXS3
@name varchar(10)=NULL --默认参数
AS
IF @name IS NULL
SELECT 产品编号,产品名称,价格,库存量 FROM CP ELSE
SELECT 产品编号,产品名称,价格,库存量 FROM CP
WHERE 产品名称=@name GO
执行存储过程:
第 5 页 共 17 页