- 1、本文档共38页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
.
.
薁实验十二 存储过程与函数
衿姓名:
蒆计算机科学与技术
螃
薂学号:
羈
袅专业:
薃
蚄
莀班级:
蕿
芄同组人:
蒁无
蒈
羈实验日期:
羄
薂
袁
莈
螅
薄
罿
袇【实验目的与要求】
蒅熟练掌握存储过程的编写。
莁熟练掌握函数的编写与使用。
莂【实验内容与步骤】
芆基础知识
芅存储过程(Stored Procedure)和函数是一组编译好存储在服务器上的完成特定功能T-SQL代码,是某数据库的对象。客户端应用程序可以通过指定存储过程或函数的名字并给出参数(如果该存储过程带有参数)来执行存储过程。
蒃创建用户存储过程
蒀1. 使用存储过程模板创建存储过程
蚆在【对象资源管理器】窗口中,展开“数据库”节点,再展开所选择的具体数据库节点,再展开选择“可编程性”节点,右击“存储过程”,选择“新建存储过程”命令,如图所示:
羆
蒄在右侧查询编辑器中出现存储过程的模板,可以在此基础上编辑存储过程,单击“执行”按钮,即可创建该存储过程。
薈
荿
螆实验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. 使用T-SQL语句创建存储过程
蒄在查询分析器里使用T-SQL可直接创建存储过程
芃格式:
蚈CREATE PROC 过程名
蒆@形参名 类型
膄@变参名 类型 OUTPUT
莄AS
肁SQL语句
羅实验14-3:创建一个多表查询的存储过程。
羄问题:查询在2009年9月18日有销售的产品名称
膁(1)请给出相应的代码
腿CREATE procedure G_product
虿AS
蚅 SELECT 产品名称
膃 FROM CP,cpxsb
薁WHERE CPXSB.产品编号=CP.产品编号and 销售日期=2009-9-18 0:00:00;
肈
蒅
羀(2)执行存储过程,并给出执行结果:
蚀
蒇存储过程的参数
膅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 冰箱 --实参表
薁请给出执行结果:
葿
袃
羃
螀(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
艿执行存储过程:
莅
袃(1) 不带参数时
袈EXEC P_CPXS3
虿请给出执行结果:
肆
蚁(2)带参数时
芀EXEC P_CPXS3 ‘彩色电视机’
膈请给出执行结果:
袆
蚂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
薂DECLA
文档评论(0)