实验14 存储过程与函数

(1) 不带参数时

EXEC P_CPXS3 请给出执行结果:

(2) 不带参数时

EXEC P_CPXS3 ‘彩电’ 请给出执行结果:

第 6 页 共 17 页

2. 输出参数(变参)

实验14-6:利用输出参数计算阶乘。

USE CPXS

–判断系统中是否有名为factorial的存储过程,若有,则删除之 IF EXISTS(SELECT name FROM sysobjects WHERE name='factorial' AND type='P') DROP PROCEDURE factorial

GO --前面这段仅是准备工作,真正的工作在之后 CREATE PROCEDURE factorial --创建存储过程 @in float, --输入形式参数 @out float OUTPUT --输出形式参数 AS

DECLARE @i int DECLARE @s float SET @i=1 SET @s=1 WHILE @i<=@in BEGIN

SET @s=@s*@i SET @i=@i+1 END

SET @out=@s --给输出参数赋值

调用存储过程:

DECLARE @ou float –定义变量,用于存储结果值 EXEC factorial 5,@ou OUT --实参表 PRINT @ou 请给出执行结果:

第 7 页 共 17 页

第 8 页 共 17 页

14.4. 创建用户自定义函数

1. 使用存储过程模板创建存储过程

在【对象资源管理器】窗口中,展开“数据库”节点,再展开所选择的具体数据库节点,再展开选择“可编程性”节点,右击“函数”,选择“新建”命令,在下一级菜单中选择适合的选项,如图所示:

在右侧查询编辑器中出现函数的模板,可以在此基础上编辑函数,单击“执行”按钮,即可创建该函数。

第 9 页 共 17 页

2. 使用T-SQL语句创建函数

函数分为标量函数和表值函数。前者返回一个标量值结果,在创建函数时,应在Returns语句后指明标量类型(如:int );后者以表的形式返回结果,在创建函数时,应在Returns语句后用关键词Table指时其反回类型。

在查询分析器里可使用T-SQL可直接创建函数

格式:

CREATE FUNCTION 函数名(

@形参名 类型 @变参名 类型 )

[RETURNS 类型] AS

SQL语句

3. 使用标量函数

标量函数接受0个或多个输入参数,并返回一个标量值。因为标量函数只返回一个值,所以通常在一个select语句的列列表中使用它们,也可以在where子句中使用它们。

实验14-7:基于CP表编写函数getStock( ),根据传进的参数“产品编号”,查询并返回相应产品的“库存量”。

请阅读以下程序,理解其基本结构和实现思想,给出运行结果。

第 10 页 共 17 页

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4