资源描述:
《数据库原理与应用实验12_.pdf》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、薁实验十二存储过程与函数衿姓名:蒆计算机科学与技术螃薂学号:羈袅专业:薃蚄莀班级:蕿芄同组人:蒁无蒈羈实验日期:羄薂袁莈螅薄罿袇【实验目的与要求】1.2.蒅熟练掌握存储过程的编写。3.4.莁熟练掌握函数的编写与使用。莂【实验内容与步骤】14.1.14.2.芆基础知识芅存储过程(StoredProcedure)和函数是一组编译好存储在服务器上的完成特定功能T-SQL代码,是某数据库的对象。客户端应用程序可以通过指定存储过程或函数的名字并给出参数(如果该存储过程带有参数)来执行存储过程。14.3.14.4.蒃创建用户存储过程蒀1.使用存
2、储过程模板创建存储过程蚆在【对象资源管理器】窗口中,展开“数据库”节点,再展开所选择的具体数据库节点,再展开选择“可编程性”节点,右击“存储过程”,选择“新建存储过程”命令,如图所示:羆蒄在右侧查询编辑器中出现存储过程的模板,可以在此基础上编辑存储过程,单击“执行”按钮,即可创建该存储过程。薈荿螆实验14-1:创建一个简单的存储过程,实现从CP表中读取Mp3产品相关信息芁USECPXS羁GO螈CREATEPROCEDUREget_mp3--此为无参存储过程蒆AS莃SELECT产品编号,产品名称,价格,库存量聿FROMCP芈WHERE
3、产品名称='mp3'羃实验14-2:执行存储过程莄执行存储过程可用下列方法之一:蒂(1)使用存储过程名字如:get_mp3蚇(2)使用Exec命令:如:EXECget_mp3蚃执行上面创建的存储过程,并给出执行结果:膁薀肇2.使用T-SQL语句创建存储过程蒄在查询分析器里使用T-SQL可直接创建存储过程芃格式:蚈CREATEPROC过程名蒆@形参名类型膄@变参名类型OUTPUT莄AS肁SQL语句羅实验14-3:创建一个多表查询的存储过程。羄问题:查询在2009年9月18日有销售的产品名称膁(1)请给出相应的代码腿CREATEproc
4、edureG_product虿AS蚅SELECT产品名称膃FROMCP,cpxsb薁WHERECPXSB.产品编号=CP.产品编号and销售日期='2009-9-180:00:00';肈蒅羀(2)执行存储过程,并给出执行结果:蚀14.5.14.6.蒇存储过程的参数膅1.输入参数(值参)肂实验14-4:输入参数为某产品的名字。螈USECPXS袇GO袆CREATEPROCEDUREP_CPXS2肃@Product_namechar(30)--形式参数膀As莆SELECT产品编号,产品名称,价格,库存量蚆FROMCP袀WHERE产品名称=
5、@Product_name艿GO螆执行存储过程:莇(1)直接传值:羂EXECP_CPXS2'冰箱'--实参表薁请给出执行结果:葿袃羃螀(2)变量传值:袈DECLARE@tempchar(30)薃SET@temp='洗衣机'螀EXECP_CPXS2@temp--实参表袈请给出执行结果:芈莄实验14-5:使用默认参数袂阅读以下程序段,理解参数传递过程膀USECPXS螇GO肄CREATEPROCEDUREP_CPXS3羃@namevarchar(10)=NULL--默认参数艿AS膆IF@nameISNULL袄SELECT产品编号,产品名称
6、,价格,库存量螁FROMCP蚁ELSE薆SELECT产品编号,产品名称,价格,库存量薅FROMCP螂WHERE产品名称=@name蝿GO艿执行存储过程:莅袃(1)不带参数时袈EXECP_CPXS3虿请给出执行结果:肆蚁(2)带参数时芀EXECP_CPXS3‘彩色电视机’膈请给出执行结果:袆蚂2.输出参数(变参)荿实验14-6:利用输出参数计算阶乘。薇USECPXS薆–判断系统中是否有名为factorial的存储过程,若有,则删除之螄IFEXISTS(SELECTnameFROMsysobjects螁WHEREname='factor
7、ial'ANDtype='P')羇DROPPROCEDUREfactorial芇GO--前面这段仅是准备工作,真正的工作在之后薁CREATEPROCEDUREfactorial--创建存储过程衿@infloat,--输入形式参数蒆@outfloatOUTPUT--输出形式参数螃AS薂DECLARE@iint羈DECLARE@sfloat袅SET@i=1薃SET@s=1蚄WHILE@i<=@in莀BEGIN蕿SET@s=@s*@i芄SET@i=@i+1蒁END蒈SET@out=@s--给输出参数赋值羈调用存储过程:羄薂DECLARE@
8、oufloat–定义变量,用于存储结果值袁EXECfactorial5,@ouOUT--实参表莈PRINT@ou螅请给出执行结果:薄14.7.14.8.罿创建用户自定义函数袇1.使用存储过程模板创建存储过程蒅在【对象资源管理器】窗口中